reaflow
reaflow copied to clipboard
TypeError: _a.scrollTo is not a function (in tests)
I'm submitting a...
[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Other... Please describe:
Current behavior
When creating any Canvas in tests i get an error of TypeError: _a.scrollTo is not a function
For ref here is my code that works just fine in non-test cases:
<Canvas
nodes={graph.nodes.map(toReaflowNode(formatNodeLabel))}
edges={graph.edges.map(toReaflowEdge)}
/>
Full stacktrace
Error: Uncaught [TypeError: _a.scrollTo is not a function]
at reportException (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:62:24)
at innerInvokeEventListeners (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:333:9)
at invokeEventListeners (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLUnknownElementImpl._dispatch (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:221:9)
at HTMLUnknownElementImpl.dispatchEvent (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:94:17)
at HTMLUnknownElement.dispatchEvent (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:231:34)
at Object.invokeGuardedCallbackDev (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:3994:16)
at invokeGuardedCallback (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:4056:31)
at flushPassiveEffectsImpl (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:23574:9)
at unstable_runWithPriority (/home/cdk/dev/codoc-webapp/node_modules/scheduler/cjs/scheduler.development.js:646:12) TypeError: _a.scrollTo is not a function
at /home/cdk/dev/codoc-webapp/node_modules/reaflow/dist/index.cjs.js:442:110
at invokePassiveEffectCreate (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:23487:20)
at HTMLUnknownElement.callCallback (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:3945:14)
at HTMLUnknownElement.callTheUserObjectsOperation (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
at innerInvokeEventListeners (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:318:25)
at invokeEventListeners (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLUnknownElementImpl._dispatch (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:221:9)
at HTMLUnknownElementImpl.dispatchEvent (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:94:17)
at HTMLUnknownElement.dispatchEvent (/home/cdk/dev/codoc-webapp/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:231:34)
at Object.invokeGuardedCallbackDev (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:3994:16)
at invokeGuardedCallback (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:4056:31)
at flushPassiveEffectsImpl (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:23574:9)
at unstable_runWithPriority (/home/cdk/dev/codoc-webapp/node_modules/scheduler/cjs/scheduler.development.js:646:12)
at runWithPriority$1 (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:11276:10)
at flushPassiveEffects (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom.development.js:23447:14)
at Object.<anonymous>.flushWork (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom-test-utils.development.js:992:10)
at act (/home/cdk/dev/codoc-webapp/node_modules/react-dom/cjs/react-dom-test-utils.development.js:1107:9)
at render (/home/cdk/dev/codoc-webapp/node_modules/@testing-library/react/dist/pure.js:95:26)
at render (/home/cdk/dev/codoc-webapp/src/_test/react.jsx:21:8)
at Object.<anonymous> (/home/cdk/dev/codoc-webapp/src/components/GraphWrapper.test.jsx:41:39)
at Promise.then.completed (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/utils.js:276:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/utils.js:216:10)
at _callCircusTest (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/run.js:212:40)
at processTicksAndRejections (node:internal/process/task_queues:94:5)
at _runTest (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/run.js:149:3)
at _runTestsForDescribeBlock (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/run.js:63:9)
at _runTestsForDescribeBlock (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/run.js:57:9)
at run (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/run.js:25:3)
at runAndTransformResultsToJestFormat (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:176:21)
at jestAdapter (/home/cdk/dev/codoc-webapp/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:109:19)
at runTestInternal (/home/cdk/dev/codoc-webapp/node_modules/jest-runner/build/runTest.js:380:16)
at runTest (/home/cdk/dev/codoc-webapp/node_modules/jest-runner/build/runTest.js:472:34)
at Object.worker (/home/cdk/dev/codoc-webapp/node_modules/jest-runner/build/testWorker.js:133:12)
Expected behavior
That something would load for my tests :)
Minimal reproduction of the problem with instructions
What is the motivation / use case for changing the behavior?
Environment
Libs:
- react version: 17.0.1
- realayers version: 3.0.14
Browser:
- [ ] Chrome (desktop) version XX
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX
For Tooling issues:
- Node version: XX
- Platform: linux
Others:
I think this is related to scrollTo and the test driver.what testing library are you using?
Also have this problem with "@testing-library/react": "^11.1.0"
With this passed the tests successfully:
import { ResizeObserver } from '@juggle/resize-observer';
window.ResizeObserver = ResizeObserver; Element.prototype.scrollTo = jest.fn();
but still, have a console.error:
console.error 💡 react-cool-dimensions: the browser doesn't support Resize Observer, please use polyfill: https://github.com/wellyshen/react-cool-dimensions#resizeobserver-polyfill
at node_modules/react-cool-dimensions/dist/index.js:1:2420
at invokePassiveEffectCreate (node_modules/react-dom/cjs/react-dom.development.js:23487:20)
at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:3945:14)
at HTMLUnknownElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:338:25)
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:221:9)
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:94:17)
@Nerevar123 - Maybe we should log and reference this ticket in that lib?
@amcdnl https://github.com/wellyshen/react-cool-dimensions/issues/558 done Maybe the problem with the version of this package, the current is 2.0.7, reaflow uses 1.3.4
Got it. The resizer is locked at that version because various libraries in reaviz org all use it. I will need to update them all and test to make sure new version works. I will make a item to do that.
Adding this line to setupTests.ts fixed the problem:
window.ResizeObserverEntry = jest.fn();
Can any of you retry on latest? I think I solved it but not sure.