react-youtube icon indicating copy to clipboard operation
react-youtube copied to clipboard

Jest testing issues

Open Ferrus91 opened this issue 7 years ago • 3 comments

TypeError: Cannot read property 'playVideo' of null at /Users/samuelkeays/content-lab-renderer/node_modules/youtube-player/dist/index.js:77:127 at new Promise (<anonymous>) at Object.<anonymous>.exports.default (/Users/samuelkeays/content-lab-renderer/node_modules/youtube-player/dist/index.js:64:24) at YouTube._this.createPlayer (/Users/samuelkeays/content-lab-renderer/node_modules/react-youtube/dist/YouTube.js:147:58) at YouTube.componentDidMount (/Users/samuelkeays/content-lab-renderer/node_modules/react-youtube/dist/YouTube.js:216:12) at commitLifeCycles (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6444:22) at commitAllLifeCycles (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7540:7) at HTMLUnknownElement.callCallback (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1899:14) at invokeEventListeners (/Users/samuelkeays/content-lab-renderer/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:219:27) at HTMLUnknownElementImpl._dispatch (/Users/samuelkeays/content-lab-renderer/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:126:9) at HTMLUnknownElementImpl.dispatchEvent (/Users/samuelkeays/content-lab-renderer/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:87:17) at HTMLUnknownElementImpl.dispatchEvent (/Users/samuelkeays/content-lab-renderer/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js:36:27) at HTMLUnknownElement.dispatchEvent (/Users/samuelkeays/content-lab-renderer/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35) at Object.invokeGuardedCallbackDev (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1937:16) at invokeGuardedCallback (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1986:29) at commitRoot (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7681:7) at completeRoot (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8650:34) at performWorkOnRoot (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8595:9) at performWork (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8527:7) at performSyncWork (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8499:3) at requestWork (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8399:5) at scheduleWork (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8274:11) at scheduleRootUpdate (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8739:3) at updateContainerAtExpirationTime (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8766:10) at updateContainer (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8777:10) at Object.create (/Users/samuelkeays/content-lab-renderer/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:9260:5) at Object.it (/Users/samuelkeays/content-lab-renderer/src/components/Video/Video.test.jsx:8:51) at Object.asyncFn (/Users/samuelkeays/content-lab-renderer/node_modules/jest-jasmine2/build/jasmine-async.js:68:30) at resolve (/Users/samuelkeays/content-lab-renderer/node_modules/jest-jasmine2/build/queueRunner.js:38:12) at new Promise (<anonymous>) at mapper (/Users/samuelkeays/content-lab-renderer/node_modules/jest-jasmine2/build/queueRunner.js:31:21) at Promise.resolve.then.el (/Users/samuelkeays/content-lab-renderer/node_modules/p-map/index.js:46:16) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7)

I am receiving this error when investigating in test. The root of the problem seems to be that this.container is passed to youtube-player, and the exported function there is testing on undefined but not on null, thus causing the error we see above.

Do we really need to define this.container as null? If it was removed this the bug would not be an issue although the real issue is with youtube-player.

Ferrus91 avatar Oct 09 '18 13:10 Ferrus91

I also get this error, any workaround?

pdewouters avatar Feb 13 '20 12:02 pdewouters

still happens with latest version

macrozone avatar Dec 18 '20 11:12 macrozone

@Ferrus91 Can you provide a sample CodeSandox to reproduce this error?

ruisaraiva19 avatar Jan 24 '21 14:01 ruisaraiva19