react-youtube
react-youtube copied to clipboard
Jest testing issues
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.
I also get this error, any workaround?
still happens with latest version
@Ferrus91 Can you provide a sample CodeSandox to reproduce this error?