Jsdom: scrollIntoView ليست وظيفة

تم إنشاؤها على ٢٨ ديسمبر ٢٠١٦  ·  14تعليقات  ·  مصدر: jsdom/jsdom

أقوم بإجراء اختبار باستخدام مكتبة ( grommet ) تستخدم scrollIntoView على علامة a . jsdom حدوث أخطاء عند الضغط على هذا السطر من التعليمات البرمجية. تمكنت من تشغيله عن طريق إضافة window.HTMLElement.prototype.scrollIntoView = function() {}; في ملف testHelper الخاص بي لإعداد الاختبارات ، لكنني اعتقدت أنني سأبلغ عنه لمعرفة ما إذا كان شيئًا تريد إصلاحه.

css feature layout

التعليق الأكثر فائدة

QuantumInformation يمكنك استخدام هذا من أجل الدعابة:

Element.prototype.scrollIntoView = jest.fn();

ال 14 كومينتر

نعم ، قد يكون هذا مفيدًا لإضافة كعب تحذير لم يتم تنفيذه لـ. لا يمكننا تنفيذها حقًا لأننا لا نقوم بالتخطيط.

أي حركة على هذا؟

في محاولة لاستخدامه في اختبار Jest ، أحاول تثبيت مكون يستدعي scrollIntoView على عنصر ، ويفشل الاختبار دائمًا مع

TypeError: node.scrollIntoView is not a function
        at Object.scrollInToView src/component/shared/foo.tsx:7
        at User.Object.<anonymous>.User.componentDidMount

QuantumInformation يمكنك استخدام هذا من أجل الدعابة:

Element.prototype.scrollIntoView = jest.fn();

أرى هذا الإصلاح في كل مكان ، ولكن هل كنت تستورد العنصر من؟ أحصل على "لم يتم تعريف العنصر" أنا أستخدم إنزيمًا مع شاي.

أنت بحاجة إلى عنصر في tsconfig libs الخاص بك:

بمعنى آخر
"دوم"

@ qmg-JamesT إنها فئة العناصر العامة حيث يتم توارث العناصر الأخرى بطريقة scrollIntoView .

مرحبًا ، هل هناك أي تحديث على هذا دون استخدام المزاح؟

مرحبًا ، يمكنك استخدام window.HTMLElement.prototype.scrollIntoView = jest.fn ()

أحتاج إلى نفس الشيء لـ Element.prototype.scroll = jest.fn ()

enessoylu و msmetana أين تنصح بوضع Element.prototype.scrollIntoView = jest.fn() في كل اختبار.

عند استخدام CRA ، هناك setupTest.ts ، يبدو أنه يعمل ولكن لا أعرف

import '@testing-library/jest-dom/extend-expect'

Element.prototype.scroll = jest.fn()

بالنسبة إلى ava أو أي عداء اختبار وحدة أخرى ، يمكنك استخدام window.HTMLElement.prototype.scrollIntoView = () => {} وتعيينه على test.beforeEach() أو داخل وظيفة الاختبار

بالنسبة لي كان كافيًا أن أضع:

Element.prototype.scrollIntoView` = () => {};

مرة واحدة في setupJest.ts

يبدو أن هذا هو الحال أيضًا مع scroll

Element.prototype.scrollIntoView = jest.fn();

شكرا! انها عملت.

جرب هذه..
window.HTMLElement.prototype.scrollIntoView = function () {} ؛

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

cg433n picture cg433n  ·  3تعليقات

camelaissani picture camelaissani  ·  4تعليقات

khalyomede picture khalyomede  ·  3تعليقات

philipwalton picture philipwalton  ·  4تعليقات

kentmw picture kentmw  ·  3تعليقات