Last active
May 17, 2020 21:37
-
-
Save vjeux/0050ee599a30c12e922e181c73518f2e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(517) >> yarn test | |
Using globally installed version of Yarn | |
yarn run v1.12.1 | |
$ jest src/* | |
(node:37909) UnhandledPromiseRejectionWarning: Error: Callback didn't resolve | |
(node:37909) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) | |
(node:37909) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. | |
(node:37909) UnhandledPromiseRejectionWarning: Error: Callback didn't resolve | |
(node:37909) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2) | |
FAIL src/hooks/__tests__/Recoil_useRecoilCallback-test.js | |
● Console | |
console.error | |
Warning: You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...); | |
at printWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:87:30) | |
at error (node_modules/react-dom/cjs/react-dom-test-utils.development.js:59:5) | |
at node_modules/react-dom/cjs/react-dom-test-utils.development.js:946:13 | |
console.error | |
Warning: You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...); | |
at printWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:87:30) | |
at error (node_modules/react-dom/cjs/react-dom-test-utils.development.js:59:5) | |
at node_modules/react-dom/cjs/react-dom-test-utils.development.js:946:13 | |
console.error | |
Warning: You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...); | |
at printWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:87:30) | |
at error (node_modules/react-dom/cjs/react-dom-test-utils.development.js:59:5) | |
at node_modules/react-dom/cjs/react-dom-test-utils.development.js:946:13 | |
console.error | |
Warning: You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...); | |
at printWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:87:30) | |
at error (node_modules/react-dom/cjs/react-dom-test-utils.development.js:59:5) | |
at node_modules/react-dom/cjs/react-dom-test-utils.development.js:946:13 | |
console.error | |
Warning: You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...); | |
at printWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:87:30) | |
at error (node_modules/react-dom/cjs/react-dom-test-utils.development.js:59:5) | |
at node_modules/react-dom/cjs/react-dom-test-utils.development.js:946:13 | |
● useRecoilCallback › Reads from a snapshot created at callback call time | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 345 | |
Received: null | |
142 | act(cb); | |
143 | await flushPromisesAndTimers(); | |
> 144 | expect(seenValue).toBe(345); | |
| ^ | |
145 | | |
146 | // But does not see an update flushed while the cb is in progress: | |
147 | seenValue = null; | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_useRecoilCallback-test.js:144:23) | |
FAIL src/hooks/__tests__/Recoil_useRecoilStateReset-test.js | |
● Console | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`Component`). To locate the bad setState() call inside `Component`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in Component | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
● useResetRecoilState - async selector default | |
expect(received).toBe(expected) // Object.is equality | |
Expected: "\"set value\"" | |
Received: "loading" | |
76 | act(() => setValue('set value')); | |
77 | act(() => jest.runAllTimers()); // Hmm, interesting this is required | |
> 78 | expect(container.textContent).toBe('"set value"'); | |
| ^ | |
79 | act(() => resetValue()); | |
80 | expect(container.textContent).toBe('loading'); | |
81 | act(() => resolve('resolved fallback')); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_useRecoilStateReset-test.js:78:33) | |
FAIL src/hooks/__tests__/Recoil_useRecoilValueLoadable-test.js | |
● Console | |
console.error | |
Warning: An update to ReadLoadable inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadLoadable | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
● useRecoilValueLoadable - loading loadable | |
expect(received).toEqual(expected) // deep equality | |
Expected: "VALUE" | |
Received: "LOADING" | |
114 | resolved = true; | |
115 | act(() => jest.runAllTimers()); | |
> 116 | expect(c.textContent).toEqual('VALUE'); | |
| ^ | |
117 | await Promise.all( | |
118 | promises.map(async promise => { | |
119 | if (!(promise instanceof Promise)) { | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_useRecoilValueLoadable-test.js:116:25) | |
FAIL src/recoil_values/__tests__/Recoil_atomWithFallback-test.js | |
● Console | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`ReadsAtom`). To locate the bad setState() call inside `ReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`MyReadsAtom`). To locate the bad setState() call inside `MyReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in MyReadsAtom | |
in Switch | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
● Async fallback | |
expect(received).toEqual(expected) // deep equality | |
Expected: "42" | |
Received: "loading" | |
67 | expect(container.textContent).toEqual('loading'); | |
68 | act(() => jest.runAllTimers()); | |
> 69 | expect(container.textContent).toEqual('42'); | |
| ^ | |
70 | }); | |
71 | | |
72 | describe('ReturnDefaultOrFallback', () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_atomWithFallback-test.js:69:33) | |
FAIL src/recoil_values/__tests__/Recoil_selector-test.js | |
● Console | |
console.error | |
Error: Uncaught [Error: MY ERROR] | |
at reportException (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:62:24) | |
at innerInvokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
at Object.invokeGuardedCallbackDev (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:237:16) | |
at invokeGuardedCallback (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:292:31) | |
at beginWork$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:23203:7) | |
at performUnitOfWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22157:12) Error: MY ERROR | |
at /Users/vjeux/random/Recoil/src/recoil_values/Recoil_error.js:22:11 | |
at get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selectorFamily.js:108:32) | |
at evaluateSelectorGetter (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_NEW.js:430:16) | |
at getSelectorResult (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_NEW.js:592:9) | |
at Object.get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_NEW.js:745:12) | |
at getNodeLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_FunctionalCore.js:46:23) | |
at replacer (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:48:38) | |
at Object.replaceState (/Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:62:32) | |
at fn (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:46:11) | |
at Object.trace (/Users/vjeux/random/Recoil/src/util/Recoil_Tracing.js:38:10) | |
at getRecoilValueAsLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:45:11) | |
at get (/Users/vjeux/random/Recoil/src/recoil_values/__tests__/Recoil_selector-test.js:42:10) | |
at Object.<anonymous> (/Users/vjeux/random/Recoil/src/recoil_values/__tests__/Recoil_selector-test.js:142:10) | |
at Object.asyncJestTest (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:100:37) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:47:12 | |
at new Promise (<anonymous>) | |
at mapper (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:30:19) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:77:41 | |
at processTicksAndRejections (internal/process/task_queues.js:97:5) | |
at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45) | |
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:28) | |
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
console.error | |
The above error occurred in the <ReadsAtom> component: | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary. | |
at logCapturedError (node_modules/react-dom/cjs/react-dom.development.js:19527:21) | |
at logError (node_modules/react-dom/cjs/react-dom.development.js:19564:5) | |
at ErrorBoundary.update.payload (node_modules/react-dom/cjs/react-dom.development.js:20723:7) | |
at getStateFromUpdate (node_modules/react-dom/cjs/react-dom.development.js:12293:35) | |
at processUpdateQueue (node_modules/react-dom/cjs/react-dom.development.js:12424:22) | |
at resumeMountClassInstance (node_modules/react-dom/cjs/react-dom.development.js:13091:3) | |
at updateClassComponent (node_modules/react-dom/cjs/react-dom.development.js:17105:20) | |
at beginWork (node_modules/react-dom/cjs/react-dom.development.js:18620:16) | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`ReadsAtom`). To locate the bad setState() call inside `ReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: An update to ReadsAtom inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: An update to ReadsAtom inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: An update to ReadsAtom inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: An update to ReadsAtom inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: An update to Batcher inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in Batcher (created by RecoilRoot) | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at updateStateWithNewDepsFromAsync (src/recoil_values/Recoil_selector_NEW.js:712:11) | |
at src/recoil_values/Recoil_selector_NEW.js:262:11 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`Component`). To locate the bad setState() call inside `Component`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in Component | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: An update to Batcher inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in Batcher (created by RecoilRoot) | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at updateStateWithNewDepsFromAsync (src/recoil_values/Recoil_selector_NEW.js:712:11) | |
at src/recoil_values/Recoil_selector_NEW.js:276:11 | |
console.error | |
Warning: An update to Batcher inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in Batcher (created by RecoilRoot) | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at updateStateWithNewDepsFromAsync (src/recoil_values/Recoil_selector_NEW.js:712:11) | |
at src/recoil_values/Recoil_selector_NEW.js:350:11 | |
console.error | |
Warning: An update to Batcher inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in Batcher (created by RecoilRoot) | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at updateStateWithNewDepsFromAsync (src/recoil_values/Recoil_selector_NEW.js:712:11) | |
at src/recoil_values/Recoil_selector_NEW.js:262:11 | |
console.error | |
Warning: An update to Batcher inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in Batcher (created by RecoilRoot) | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at updateStateWithNewDepsFromAsync (src/recoil_values/Recoil_selector_NEW.js:712:11) | |
at src/recoil_values/Recoil_selector_NEW.js:350:11 | |
console.error | |
Warning: An update to Batcher inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in Batcher (created by RecoilRoot) | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at updateStateWithNewDepsFromAsync (src/recoil_values/Recoil_selector_NEW.js:712:11) | |
at src/recoil_values/Recoil_selector_NEW.js:276:11 | |
● useRecoilState - resolved async selector | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"HELLO\"" | |
Received: "loading" | |
121 | expect(c.textContent).toEqual('loading'); | |
122 | act(() => jest.runAllTimers()); | |
> 123 | expect(c.textContent).toEqual('"HELLO"'); | |
| ^ | |
124 | }); | |
125 | | |
126 | test('selector - evaluate to RecoilValue', () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:123:25) | |
● selector - catching loads | |
expect(received).toEqual(expected) // deep equality | |
Expected: "READY" | |
Received: "BYPASS" | |
180 | expect(get(bypassSelector)).toBe('BYPASS'); | |
181 | act(() => jest.runAllTimers()); | |
> 182 | expect(get(bypassSelector)).toEqual('READY'); | |
| ^ | |
183 | }); | |
184 | | |
185 | test('useRecoilState - selector catching exceptions', () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:182:31) | |
● useRecoilState - async selector | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"READY\"" | |
Received: "loading" | |
213 | // When that resolves the data is ready | |
214 | act(() => jest.runAllTimers()); | |
> 215 | expect(c1.textContent).toEqual('"READY"'); | |
| ^ | |
216 | }); | |
217 | | |
218 | test('useRecoilState - selector blocked on dependency', () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:215:26) | |
● useRecoilState - selector blocked on dependency | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"READY\"" | |
Received: "loading" | |
229 | // When the dependency resolves, the data is ready | |
230 | act(() => jest.runAllTimers()); | |
> 231 | expect(c2.textContent).toEqual('"READY"'); | |
| ^ | |
232 | }); | |
233 | | |
234 | test('useRecoilState - selector catching loads', async () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:231:26) | |
● useRecoilState - selector catching loads | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"READY\"" | |
Received: "\"BYPASS\"" | |
256 | // with the new data. | |
257 | act(() => jest.runAllTimers()); | |
> 258 | expect(c3.textContent).toEqual('"READY"'); | |
| ^ | |
259 | }); | |
260 | | |
261 | test('useRecoilState - selector catching all of 2 loads', async () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:258:26) | |
● useRecoilState - selector catching all of 2 loads | |
expect(received).toEqual(expected) // deep equality | |
Expected: "1" | |
Received: "0" | |
288 | // After the first resolution, we're still waiting on the second | |
289 | act(() => jest.runAllTimers()); | |
> 290 | expect(c3.textContent).toEqual('1'); | |
| ^ | |
291 | | |
292 | // When both are available, we are done! | |
293 | act(() => jest.runAllTimers()); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:290:26) | |
● useRecoilState - selector catching any of 2 loads | |
expect(received).toEqual(expected) // deep equality | |
Expected: "2" | |
Received: "0" | |
324 | // in parallel after one event loop. | |
325 | act(() => jest.runAllTimers()); | |
> 326 | expect(c3.textContent).toEqual('2'); | |
| ^ | |
327 | }); | |
328 | | |
329 | // Test the ability to catch a promise for a pending dependency that we can | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:326:26) | |
● useRecoilState - selector catching promise and resolving asynchronously | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"BYPASS\"" | |
Received: "loading" | |
350 | resolveBypass('BYPASS'); | |
351 | act(() => jest.runAllTimers()); | |
> 352 | expect(c.textContent).toEqual('"BYPASS"'); | |
| ^ | |
353 | resolveOriginal('READY'); | |
354 | act(() => jest.runAllTimers()); | |
355 | expect(c.textContent).toEqual('"READY"'); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:352:25) | |
● useRecoilState - selector catching promise 2 | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"READY\"" | |
Received: "loading" | |
392 | // get READY and not READY NOW. | |
393 | // expect(c.textContent).toEqual('"READY NOW"'); | |
> 394 | expect(c.textContent).toEqual('"READY"'); | |
| ^ | |
395 | | |
396 | // Test that the promise for the dependency that we got actually resolved | |
397 | // to the dependency's value. | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:394:25) | |
● Detect circular dependencies | |
expect(received).toEqual(expected) // deep equality | |
Expected: StringContaining "circular/A" | |
Received: "Maximum call stack size exceeded" | |
417 | window.__DEV__ = true; | |
418 | expect(get(selectorC)).toBeInstanceOf(Error); | |
> 419 | expect(getError(selectorC).message).toEqual( | |
| ^ | |
420 | expect.stringContaining('circular/A'), | |
421 | ); | |
422 | window.__DEV__ = devStatus; | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:419:39) | |
● selector is able to track dependencies discovered asynchronously | |
expect(received).toEqual(expected) // deep equality | |
Expected: "Async Dep Value" | |
Received: "loading" | |
450 | act(() => jest.runAllTimers()); | |
451 | | |
> 452 | expect(container.textContent).toEqual('Async Dep Value'); | |
| ^ | |
453 | | |
454 | act(() => setAtom('CHANGED Async Dep')); | |
455 | | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:452:33) | |
● selector should rerun entire selector when a dep changes | |
expect(received).toEqual(expected) // deep equality | |
Expected: "6" | |
Received: "loading" | |
504 | act(() => jest.runAllTimers()); | |
505 | | |
> 506 | expect(container.textContent).toEqual('6'); | |
| ^ | |
507 | | |
508 | act(() => setAtom(4)); | |
509 | | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:506:33) | |
● async selector runs the minimum number of times required | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 2 | |
Received: 1 | |
544 | act(() => jest.runAllTimers()); | |
545 | | |
> 546 | expect(numTimesRan).toBe(2); | |
| ^ | |
547 | | |
548 | resolveAsyncDep2('b'); | |
549 | | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:546:23) | |
● selector - dynamic getRecoilValue() | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"READY\"" | |
Received: "loading" | |
616 | act(() => jest.runAllTimers()); | |
617 | | |
> 618 | expect(el.textContent).toEqual('"READY"'); | |
| ^ | |
619 | }); | |
620 | | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_selector-test.js:618:26) | |
(node:37909) UnhandledPromiseRejectionWarning: Error: expect(received).resolves.toHaveProperty(path, value) | |
Expected path: "value" | |
- Expected value - 2 | |
+ Received value + 2 | |
@@ -1,15 +1,15 @@ | |
Array [ | |
Object { | |
- "contents": [Error], | |
+ "contents": Promise {}, | |
"errorMaybe": [Function errorMaybe], | |
"errorOrThrow": [Function errorOrThrow], | |
"getValue": [Function getValue], | |
"map": [Function map], | |
"promiseMaybe": [Function promiseMaybe], | |
"promiseOrThrow": [Function promiseOrThrow], | |
- "state": "hasError", | |
+ "state": "loading", | |
"toPromise": [Function toPromise], | |
"valueMaybe": [Function valueMaybe], | |
"valueOrThrow": [Function valueOrThrow], | |
}, | |
Object { | |
(node:37909) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 16) | |
(node:37909) UnhandledPromiseRejectionWarning: Error: expect(received).resolves.toHaveProperty(path, value) | |
Expected path: "value" | |
- Expected value - 2 | |
+ Received value + 2 | |
@@ -1,15 +1,15 @@ | |
Array [ | |
Object { | |
- "contents": [Error], | |
+ "contents": Promise {}, | |
"errorMaybe": [Function errorMaybe], | |
"errorOrThrow": [Function errorOrThrow], | |
"getValue": [Function getValue], | |
"map": [Function map], | |
"promiseMaybe": [Function promiseMaybe], | |
"promiseOrThrow": [Function promiseOrThrow], | |
- "state": "hasError", | |
+ "state": "loading", | |
"toPromise": [Function toPromise], | |
"valueMaybe": [Function valueMaybe], | |
"valueOrThrow": [Function valueOrThrow], | |
}, | |
Object { | |
(node:37909) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 17) | |
FAIL src/recoil_values/__tests__/Recoil_atomFamily-test.js | |
● Console | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`ReadsAtom`). To locate the bad setState() call inside `ReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`MyReadsAtom`). To locate the bad setState() call inside `MyReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in MyReadsAtom | |
in Switch | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`Component`). To locate the bad setState() call inside `Component`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in Component | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
● Upgrades non-parameterized atoms | |
TypeError: Cannot destructure property 'error' of 'undefined' as it is undefined. | |
12 | message: string, | |
13 | projectName: 'recoil', | |
> 14 | {error}: {|error?: Error|}, | |
| ^ | |
15 | ): null { | |
16 | // if (__DEV__) { | |
17 | // console.error(message, error); | |
at recoverableViolation (src/util/Recoil_recoverableViolation.js:14:5) | |
at registerNode (src/core/Recoil_Node.js:81:7) | |
at baseAtom (src/recoil_values/Recoil_atom.js:109:10) | |
at atom (src/recoil_values/Recoil_atom.js:208:12) | |
at atomFamily (src/recoil_values/Recoil_atomFamily.js:190:18) | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_atomFamily-test.js:77:13) | |
● atomFamily async fallback | |
expect(received).toEqual(expected) // deep equality | |
Expected: "42" | |
Received: "loading" | |
138 | expect(container.textContent).toEqual('loading'); | |
139 | act(() => jest.runAllTimers()); | |
> 140 | expect(container.textContent).toEqual('42'); | |
| ^ | |
141 | }); | |
142 | | |
143 | test('Parameterized fallback with atom and async', () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_atomFamily-test.js:140:33) | |
● Parameterized fallback with atom and async | |
expect(received).toEqual(expected) // deep equality | |
Expected: "\"async\"" | |
Received: "loading" | |
167 | expect(asyncCont.textContent).toEqual('loading'); | |
168 | act(() => jest.runAllTimers()); | |
> 169 | expect(asyncCont.textContent).toEqual('"async"'); | |
| ^ | |
170 | }); | |
171 | | |
172 | test('atomFamily with scope', () => { | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_atomFamily-test.js:169:33) | |
● atomFamily with scope | |
expect(received).toBe(expected) // Object.is equality | |
Expected: "default" | |
Received: "xValue1" | |
191 | set(scopeForParamAtom, 'bar'); | |
192 | | |
> 193 | expect(get(paramAtomWithScope({k: 'x'}))).toBe('default'); | |
| ^ | |
194 | expect(get(paramAtomWithScope({k: 'y'}))).toBe('default'); | |
195 | set(paramAtomWithScope({k: 'x'}), 'xValue2'); | |
196 | expect(get(paramAtomWithScope({k: 'x'}))).toBe('xValue2'); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_atomFamily-test.js:193:45) | |
● atomFamily with parameterized scope | |
expect(received).toBe(expected) // Object.is equality | |
Expected: "default" | |
Received: "xValue1" | |
228 | expect(get(paramScopeForParamAtom({namespace: 'foo'}))).toBe('eggs'); | |
229 | | |
> 230 | expect(get(paramAtomWithParamScope({n: 'foo', k: 'x'}))).toBe('default'); | |
| ^ | |
231 | expect(get(paramAtomWithParamScope({n: 'foo', k: 'y'}))).toBe('default'); | |
232 | set(paramAtomWithParamScope({n: 'foo', k: 'x'}), 'xValue2'); | |
233 | expect(get(paramAtomWithParamScope({n: 'foo', k: 'x'}))).toBe('xValue2'); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_atomFamily-test.js:230:60) | |
FAIL src/recoil_values/__tests__/Recoil_WaitFor-test.js | |
● noWait - resolve | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 42 | |
Received: {} | |
58 | resolve(42); | |
59 | act(() => jest.runAllTimers()); | |
> 60 | expect(getValue(noWait(dep)).contents).toBe(42); | |
| ^ | |
61 | await pTest; | |
62 | }); | |
63 | | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:60:42) | |
● noWait - reject | |
expect(received).toBeInstanceOf(expected) | |
Expected constructor: MyError | |
Received constructor: Promise | |
72 | reject(new MyError()); | |
73 | act(() => jest.runAllTimers()); | |
> 74 | expect(getValue(noWait(dep)).contents).toBeInstanceOf(MyError); | |
| ^ | |
75 | await pTest; | |
76 | }); | |
77 | | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:74:42) | |
● waitFor - resolve to values | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 0 | |
Received: {} | |
128 | resolveA(0); | |
129 | act(() => jest.runAllTimers()); | |
> 130 | expect(getValue(waitForNone(deps))[0].contents).toBe(0); | |
| ^ | |
131 | expect(getValue(waitForNone(deps))[1].contents).toBeInstanceOf(Promise); | |
132 | expect(getValue(waitForAny(deps))[0].contents).toBe(0); | |
133 | expect(getValue(waitForAny(deps))[1].contents).toBeInstanceOf(Promise); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:130:51) | |
● waitFor - rejected | |
expect(received).toBeInstanceOf(expected) | |
Expected constructor: Error1 | |
Received constructor: Promise | |
190 | rejectA(new Error1()); | |
191 | act(() => jest.runAllTimers()); | |
> 192 | expect(getValue(waitForNone(deps))[0].contents).toBeInstanceOf(Error1); | |
| ^ | |
193 | expect(getValue(waitForNone(deps))[1].contents).toBeInstanceOf(Promise); | |
194 | expect(get(waitForAny(deps))).toBeInstanceOf(Promise); | |
195 | const anyTest2 = expect(get(waitForAny(deps))).rejects.toBeInstanceOf(Error1); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:192:51) | |
● waitFor - resolve then reject | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 0 | |
Received: {} | |
229 | rejectB(new Error2()); | |
230 | act(() => jest.runAllTimers()); | |
> 231 | expect(getValue(waitForNone(deps))[0].contents).toBe(0); | |
| ^ | |
232 | expect(getValue(waitForNone(deps))[1].contents).toBeInstanceOf(Error2); | |
233 | expect(getValue(waitForAny(deps))[0].contents).toBe(0); | |
234 | expect(getValue(waitForAny(deps))[1].contents).toBeInstanceOf(Error2); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:231:51) | |
● waitFor - reject then resolve | |
expect(received).toBeInstanceOf(expected) | |
Expected constructor: Error1 | |
Received constructor: Promise | |
277 | resolveB(1); | |
278 | act(() => jest.runAllTimers()); | |
> 279 | expect(getValue(waitForNone(deps))[0].contents).toBeInstanceOf(Error1); | |
| ^ | |
280 | expect(getValue(waitForNone(deps))[1].contents).toBe(1); | |
281 | expect(getValue(waitForAny(deps))[0].contents).toBeInstanceOf(Error1); | |
282 | expect(getValue(waitForAny(deps))[1].contents).toBe(1); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:279:51) | |
● waitFor - named dependency version | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 0 | |
Received: {} | |
335 | resolveA(0); | |
336 | act(() => jest.runAllTimers()); | |
> 337 | expect(getValue(waitForNone(deps)).a.contents).toBe(0); | |
| ^ | |
338 | expect(getValue(waitForNone(deps)).b.contents).toBeInstanceOf(Promise); | |
339 | expect(getValue(waitForAny(deps)).a.contents).toBe(0); | |
340 | expect(getValue(waitForAny(deps)).b.contents).toBeInstanceOf(Promise); | |
at Object.<anonymous> (src/recoil_values/__tests__/Recoil_WaitFor-test.js:337:50) | |
PASS src/core/__tests__/Recoil_RecoilValueInterface-test.js | |
PASS src/core/__tests__/Recoil_core-test.js | |
PASS src/hooks/__tests__/Recoil_useRecoilInterface-test.js | |
PASS src/util/__tests__/Recoil_stableStringify-test.js | |
PASS src/recoil_values/__tests__/Recoil_selectorFamily-test.js | |
PASS src/caches/__tests__/Recoil_cacheWithReferenceEquality-test.js | |
PASS src/recoil_values/__tests__/Recoil_constSelector-test.js | |
FAIL src/hooks/__tests__/Recoil_PublicHooks-test.js | |
● Console | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`ReadsAtom`). To locate the bad setState() call inside `ReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Error: Uncaught [Error: ERROR] | |
at reportException (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:62:24) | |
at innerInvokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
at Object.invokeGuardedCallbackDev (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:237:16) | |
at invokeGuardedCallback (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:292:31) | |
at beginWork$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:23203:7) | |
at performUnitOfWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22157:12) Error: ERROR | |
at /Users/vjeux/random/Recoil/src/recoil_values/Recoil_error.js:22:11 | |
at get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selectorFamily.js:108:32) | |
at evaluateSelectorFunction (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:281:22) | |
at computeAndSubscribeSelector (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:338:9) | |
at getFromCache (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:248:49) | |
at Object.get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:385:12) | |
at getNodeLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_FunctionalCore.js:46:23) | |
at get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:270:30) | |
at get (/Users/vjeux/random/Recoil/src/hooks/__tests__/Recoil_PublicHooks-test.js:69:24) | |
at evaluateSelectorFunction (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:281:22) | |
at computeAndSubscribeSelector (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:338:9) | |
at getFromCache (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:248:49) | |
at Object.get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:385:12) | |
at getNodeLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_FunctionalCore.js:46:23) | |
at replacer (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:48:38) | |
at Object.replaceState (/Users/vjeux/random/Recoil/src/components/Recoil_RecoilRoot.react.js:212:22) | |
at fn (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:46:11) | |
at Object.trace (/Users/vjeux/random/Recoil/src/util/Recoil_Tracing.js:38:10) | |
at getRecoilValueAsLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:45:11) | |
at useRecoilValueLoadable (/Users/vjeux/random/Recoil/src/hooks/Recoil_Hooks.js:224:14) | |
at Object.getRecoilValue (/Users/vjeux/random/Recoil/src/hooks/Recoil_Hooks.js:228:24) | |
at useRecoilValue (/Users/vjeux/random/Recoil/src/hooks/Recoil_Hooks.js:265:25) | |
at ReadsAtom (/Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:170:26) | |
at renderWithHooks (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:14803:18) | |
at mountIndeterminateComponent (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:17482:13) | |
at beginWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:18596:16) | |
at beginWork$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:23179:14) | |
at performUnitOfWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22157:12) | |
at workLoopSync (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22130:22) | |
at performSyncWorkOnRoot (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21756:9) | |
at scheduleUpdateOnFiber (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21188:7) | |
at updateContainer (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24373:3) | |
at /Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24758:7 | |
at unbatchedUpdates (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21903:12) | |
at legacyRenderSubtreeIntoContainer (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24757:5) | |
at Object.render (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24840:10) | |
at /Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:101:14 | |
at batchedUpdates$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21856:12) | |
at act (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom-test-utils.development.js:929:14) | |
at renderElements (/Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:100:3) | |
at Object.<anonymous> (/Users/vjeux/random/Recoil/src/hooks/__tests__/Recoil_PublicHooks-test.js:303:21) | |
at Object.asyncJestTest (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:100:37) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:47:12 | |
at new Promise (<anonymous>) | |
at mapper (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:30:19) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:77:41 | |
at processTicksAndRejections (internal/process/task_queues.js:97:5) | |
at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45) | |
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:28) | |
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
console.error | |
The above error occurred in the <ReadsAtom> component: | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary. | |
at logCapturedError (node_modules/react-dom/cjs/react-dom.development.js:19527:21) | |
at logError (node_modules/react-dom/cjs/react-dom.development.js:19564:5) | |
at ErrorBoundary.update.payload (node_modules/react-dom/cjs/react-dom.development.js:20723:7) | |
at getStateFromUpdate (node_modules/react-dom/cjs/react-dom.development.js:12293:35) | |
at processUpdateQueue (node_modules/react-dom/cjs/react-dom.development.js:12424:22) | |
at resumeMountClassInstance (node_modules/react-dom/cjs/react-dom.development.js:13091:3) | |
at updateClassComponent (node_modules/react-dom/cjs/react-dom.development.js:17105:20) | |
at beginWork (node_modules/react-dom/cjs/react-dom.development.js:18620:16) | |
console.error | |
Error: Uncaught [Error: ERROR] | |
at reportException (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:62:24) | |
at innerInvokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
at Object.invokeGuardedCallbackDev (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:237:16) | |
at invokeGuardedCallback (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:292:31) | |
at beginWork$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:23203:7) | |
at performUnitOfWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22157:12) Error: ERROR | |
at get (/Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:128:29) | |
at evaluateSelectorFunction (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:281:22) | |
at computeAndSubscribeSelector (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:338:9) | |
at getFromCache (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:248:49) | |
at Object.get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:385:12) | |
at getNodeLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_FunctionalCore.js:46:23) | |
at get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:270:30) | |
at get (/Users/vjeux/random/Recoil/src/hooks/__tests__/Recoil_PublicHooks-test.js:87:24) | |
at evaluateSelectorFunction (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:281:22) | |
at computeAndSubscribeSelector (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:338:9) | |
at getFromCache (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:248:49) | |
at Object.get (/Users/vjeux/random/Recoil/src/recoil_values/Recoil_selector_OLD.js:385:12) | |
at getNodeLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_FunctionalCore.js:46:23) | |
at replacer (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:48:38) | |
at Object.replaceState (/Users/vjeux/random/Recoil/src/components/Recoil_RecoilRoot.react.js:212:22) | |
at fn (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:46:11) | |
at Object.trace (/Users/vjeux/random/Recoil/src/util/Recoil_Tracing.js:38:10) | |
at getRecoilValueAsLoadable (/Users/vjeux/random/Recoil/src/core/Recoil_RecoilValue.js:45:11) | |
at useRecoilValueLoadable (/Users/vjeux/random/Recoil/src/hooks/Recoil_Hooks.js:224:14) | |
at Object.getRecoilValue (/Users/vjeux/random/Recoil/src/hooks/Recoil_Hooks.js:228:24) | |
at useRecoilValue (/Users/vjeux/random/Recoil/src/hooks/Recoil_Hooks.js:265:25) | |
at ReadsAtom (/Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:170:26) | |
at renderWithHooks (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:14803:18) | |
at mountIndeterminateComponent (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:17482:13) | |
at beginWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:18596:16) | |
at beginWork$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:23179:14) | |
at performUnitOfWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22157:12) | |
at workLoopSync (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22130:22) | |
at performSyncWorkOnRoot (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21756:9) | |
at scheduleUpdateOnFiber (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21188:7) | |
at updateContainer (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24373:3) | |
at /Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24758:7 | |
at unbatchedUpdates (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21903:12) | |
at legacyRenderSubtreeIntoContainer (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24757:5) | |
at Object.render (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:24840:10) | |
at /Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:101:14 | |
at batchedUpdates$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21856:12) | |
at act (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom-test-utils.development.js:929:14) | |
at renderElements (/Users/vjeux/random/Recoil/src/testing/Recoil_TestingUtils.js:100:3) | |
at Object.<anonymous> (/Users/vjeux/random/Recoil/src/hooks/__tests__/Recoil_PublicHooks-test.js:311:21) | |
at Object.asyncJestTest (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:100:37) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:47:12 | |
at new Promise (<anonymous>) | |
at mapper (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:30:19) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:77:41 | |
at processTicksAndRejections (internal/process/task_queues.js:97:5) | |
at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45) | |
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:28) | |
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
console.error | |
The above error occurred in the <ReadsAtom> component: | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary. | |
at logCapturedError (node_modules/react-dom/cjs/react-dom.development.js:19527:21) | |
at logError (node_modules/react-dom/cjs/react-dom.development.js:19564:5) | |
at ErrorBoundary.update.payload (node_modules/react-dom/cjs/react-dom.development.js:20723:7) | |
at getStateFromUpdate (node_modules/react-dom/cjs/react-dom.development.js:12293:35) | |
at processUpdateQueue (node_modules/react-dom/cjs/react-dom.development.js:12424:22) | |
at updateClassInstance (node_modules/react-dom/cjs/react-dom.development.js:13185:3) | |
at updateClassComponent (node_modules/react-dom/cjs/react-dom.development.js:17107:20) | |
at beginWork (node_modules/react-dom/cjs/react-dom.development.js:18620:16) | |
console.error | |
Error: Uncaught [Error: ] | |
at reportException (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:62:24) | |
at innerInvokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (/Users/vjeux/random/Recoil/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
at Object.invokeGuardedCallbackDev (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:237:16) | |
at invokeGuardedCallback (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:292:31) | |
at beginWork$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:23203:7) | |
at performUnitOfWork (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:22157:12) Error: | |
at /Users/vjeux/random/Recoil/src/hooks/__tests__/Recoil_PublicHooks-test.js:323:20 | |
at batchedUpdates$1 (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom.development.js:21856:12) | |
at act (/Users/vjeux/random/Recoil/node_modules/react-dom/cjs/react-dom-test-utils.development.js:929:14) | |
at Object.<anonymous> (/Users/vjeux/random/Recoil/src/hooks/__tests__/Recoil_PublicHooks-test.js:323:3) | |
at Object.asyncJestTest (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/jasmineAsyncInstall.js:100:37) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:47:12 | |
at new Promise (<anonymous>) | |
at mapper (/Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:30:19) | |
at /Users/vjeux/random/Recoil/node_modules/jest-jasmine2/build/queueRunner.js:77:41 | |
at processTicksAndRejections (internal/process/task_queues.js:97:5) | |
at VirtualConsole.<anonymous> (node_modules/jsdom/lib/jsdom/virtual-console.js:29:45) | |
at reportException (node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js:66:28) | |
at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:346:9) | |
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:281:3) | |
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:228:9) | |
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:101:17) | |
at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:207:34) | |
console.error | |
The above error occurred in the <ReadsAtom> component: | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary. | |
at logCapturedError (node_modules/react-dom/cjs/react-dom.development.js:19527:21) | |
at logError (node_modules/react-dom/cjs/react-dom.development.js:19564:5) | |
at ErrorBoundary.update.payload (node_modules/react-dom/cjs/react-dom.development.js:20723:7) | |
at getStateFromUpdate (node_modules/react-dom/cjs/react-dom.development.js:12293:35) | |
at processUpdateQueue (node_modules/react-dom/cjs/react-dom.development.js:12424:22) | |
at updateClassInstance (node_modules/react-dom/cjs/react-dom.development.js:13185:3) | |
at updateClassComponent (node_modules/react-dom/cjs/react-dom.development.js:17107:20) | |
at beginWork (node_modules/react-dom/cjs/react-dom.development.js:18620:16) | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`mockConstructor`). To locate the bad setState() call inside `mockConstructor`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in mockConstructor | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`SetsDuringRendering`). To locate the bad setState() call inside `SetsDuringRendering`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in SetsDuringRendering | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:63:11 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`ReadsAtomWithoutSuspense`). To locate the bad setState() call inside `ReadsAtomWithoutSuspense`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in ReadsAtomWithoutSuspense | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
console.error | |
Warning: An update to ReadsAtomWithoutSuspense inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtomWithoutSuspense | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: An update to ReadsAtomWithoutSuspense inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtomWithoutSuspense | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: An update to ReadsAtom inside a test was not wrapped in act(...). | |
When testing, code that causes React state updates should be wrapped into act(...): | |
act(() => { | |
/* fire events that update state */ | |
}); | |
/* assert on the output */ | |
This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act | |
in ReadsAtom | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
148 | return; | |
149 | } | |
> 150 | forceUpdate([]); | |
| ^ | |
151 | } | |
152 | | |
153 | differenceSets( | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnIfNotCurrentlyActingUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23284:7) | |
at forceUpdate (node_modules/react-dom/cjs/react-dom.development.js:15656:9) | |
at updateState (src/hooks/Recoil_Hooks.js:150:7) | |
at fn (src/hooks/Recoil_Hooks.js:167:13) | |
at Object.trace (src/util/Recoil_Tracing.js:38:10) | |
at src/hooks/Recoil_Hooks.js:166:19 | |
console.error | |
Warning: Cannot update a component (`Batcher`) while rendering a different component (`MyReadsAtom`). To locate the bad setState() call inside `MyReadsAtom`, follow the stack trace as described in https://fb.me/setstate-in-render | |
in MyReadsAtom | |
in Switch | |
in Suspense | |
in ErrorBoundary | |
in RecoilRoot | |
76 | | |
77 | const [_, setState] = useState([]); | |
> 78 | props.setNotifyBatcherOfChange(() => setState({})); | |
| ^ | |
79 | | |
80 | useEffect(() => { | |
81 | // enqueueExecution runs this function immediately; it is only used to | |
at printWarning (node_modules/react-dom/cjs/react-dom.development.js:88:30) | |
at error (node_modules/react-dom/cjs/react-dom.development.js:60:5) | |
at warnAboutRenderPhaseUpdatesInDEV (node_modules/react-dom/cjs/react-dom.development.js:23241:15) | |
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21165:3) | |
at setState (node_modules/react-dom/cjs/react-dom.development.js:15660:5) | |
at src/components/Recoil_RecoilRoot.react.js:78:40 | |
at Object.replaceState (src/components/Recoil_RecoilRoot.react.js:221:5) | |
at src/core/Recoil_RecoilValue.js:46:11 | |
● Selectors can depend on async selectors | |
expect(received).toEqual(expected) // deep equality | |
Expected: "2" | |
Received: "loading" | |
234 | | |
235 | act(() => jest.runAllTimers()); | |
> 236 | expect(container.textContent).toEqual('2'); | |
| ^ | |
237 | | |
238 | act(() => updateValue(1)); | |
239 | expect(container.textContent).toEqual('loading'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:236:33) | |
● Async selectors can depend on async selectors | |
expect(received).toEqual(expected) // deep equality | |
Expected: "2" | |
Received: "loading" | |
256 | | |
257 | act(() => jest.runAllTimers()); | |
> 258 | expect(container.textContent).toEqual('2'); | |
| ^ | |
259 | | |
260 | act(() => updateValue(1)); | |
261 | expect(container.textContent).toEqual('loading'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:258:33) | |
● Dep of upstream selector can change while pending | |
expect(received).toEqual(expected) // deep equality | |
Expected: 2 | |
Received: 1 | |
288 | act(() => updateValue(1)); | |
289 | await flushPromisesAndTimers(); | |
> 290 | expect(upstreamResolvers.length).toEqual(2); | |
| ^ | |
291 | expect(downstreamResolvers.length).toEqual(1); | |
292 | upstreamResolvers[1][0](123); | |
293 | await flushPromisesAndTimers(); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:290:36) | |
● Rejected promises are propogated through selectors (immediate rejection) | |
expect(received).toEqual(expected) // deep equality | |
Expected: "error" | |
Received: "loading" | |
312 | expect(container.textContent).toEqual('loading'); | |
313 | await flushPromisesAndTimers(); | |
> 314 | expect(container.textContent).toEqual('error'); | |
| ^ | |
315 | }); | |
316 | | |
317 | test('Rejected promises are propogated through selectors (later rejection)', async () => { | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:314:33) | |
● Rejected promises are propogated through selectors (later rejection) | |
expect(received).toEqual(expected) // deep equality | |
Expected: "error" | |
Received: "loading" | |
323 | act(() => reject(new Error())); | |
324 | await flushPromisesAndTimers(); | |
> 325 | expect(container.textContent).toEqual('error'); | |
| ^ | |
326 | }); | |
327 | | |
328 | test('Component subscribed to atom is rendered just once', () => { | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:325:33) | |
● Basic async selector test | |
expect(received).toEqual(expected) // deep equality | |
Expected: "1" | |
Received: "loading" | |
870 | expect(container.textContent).toEqual('loading'); | |
871 | act(() => jest.runAllTimers()); | |
> 872 | expect(container.textContent).toEqual('1'); | |
| ^ | |
873 | // Changing dependency makes it go back to loading, then to show new value: | |
874 | act(() => updateValue(1)); | |
875 | expect(container.textContent).toEqual('loading'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:872:33) | |
● Ability to not use Suspense | |
expect(received).toEqual(expected) // deep equality | |
Expected: "1" | |
Received: "loading not with suspense" | |
905 | expect(container.textContent).toEqual('loading not with suspense'); | |
906 | act(() => jest.runAllTimers()); | |
> 907 | expect(container.textContent).toEqual('1'); | |
| ^ | |
908 | // Changing dependency makes it go back to loading, then to show new value: | |
909 | act(() => updateValue(1)); | |
910 | expect(container.textContent).toEqual('loading not with suspense'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:907:33) | |
● Ability to not use Suspense - with value instead of loadable | |
expect(received).toEqual(expected) // deep equality | |
Expected: "1" | |
Received: "loading not with suspense" | |
935 | expect(container.textContent).toEqual('loading not with suspense'); | |
936 | act(() => jest.runAllTimers()); | |
> 937 | expect(container.textContent).toEqual('1'); | |
| ^ | |
938 | // Changing dependency makes it go back to loading, then to show new value: | |
939 | act(() => updateValue(1)); | |
940 | expect(container.textContent).toEqual('loading not with suspense'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:937:33) | |
● Selector can alternate between synchronous and asynchronous | |
expect(received).toEqual(expected) // deep equality | |
Expected: "1" | |
Received: "loading" | |
976 | expect(container.textContent).toEqual('loading'); | |
977 | advanceTimersBy(101); | |
> 978 | expect(container.textContent).toEqual('1'); | |
| ^ | |
979 | | |
980 | // Transition from async to sync (with async being in hasValue state): | |
981 | act(() => updateValue(2)); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:978:33) | |
● Async selectors do not re-query when re-subscribed from having no subscribers | |
expect(received).toBe(expected) // Object.is equality | |
Expected: 2 | |
Received: 1 | |
1006 | act(() => updateValue(2)); | |
1007 | await flushPromisesAndTimers(); | |
> 1008 | expect(resolvers.length).toBe(2); | |
| ^ | |
1009 | resolvers[1][0]('hello'); | |
1010 | await flushPromisesAndTimers(); | |
1011 | expect(container.textContent).toEqual('"hello"'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:1008:28) | |
● Can move out of suspense by changing deps | |
expect(received).toEqual(expected) // deep equality | |
Expected: 2 | |
Received: 1 | |
1056 | act(() => updateValue(1)); | |
1057 | await flushPromisesAndTimers(); | |
> 1058 | expect(resolvers.length).toEqual(2); | |
| ^ | |
1059 | expect(container.textContent).toEqual('loading'); | |
1060 | // When the faster second request resolves, we should see its result: | |
1061 | resolvers[1][0]('hello'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:1058:28) | |
● Can use an already-resolved promise | |
expect(received).toEqual(expected) // deep equality | |
Expected: "1" | |
Received: "loading" | |
1077 | const container = renderElements(<><Component /><ReadsAtom atom={sel} /></>); | |
1078 | await flushPromisesAndTimers(); | |
> 1079 | expect(container.textContent).toEqual('1'); | |
| ^ | |
1080 | act(() => updateValue(1)); | |
1081 | await flushPromisesAndTimers(); | |
1082 | expect(container.textContent).toEqual('2'); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:1079:33) | |
● Resolution of suspense causes render just once | |
expect(jest.fn()).toHaveBeenCalledTimes(expected) | |
Expected number of calls: 3 | |
Received number of calls: 1 | |
1092 | // Begins in loading state, then shows initial value: | |
1093 | act(() => jest.runAllTimers()); | |
> 1094 | expect(ReadComp).toHaveBeenCalledTimes(3); | |
| ^ | |
1095 | // Changing dependency makes it go back to loading, then to show new value: | |
1096 | act(() => updateValue(1)); | |
1097 | act(() => jest.runAllTimers()); | |
at Object.<anonymous> (src/hooks/__tests__/Recoil_PublicHooks-test.js:1094:20) | |
PASS src/recoil_values/__tests__/Recoil_atom-test.js | |
PASS src/recoil_values/__tests__/Recoil_errorSelector-test.js | |
PASS src/adt/__tests__/Recoil_ArrayKeyedMap-test.js | |
PASS src/caches/__tests__/Recoil_cacheWithValueEquality-test.js | |
PASS src/caches/__tests__/Recoil_cacheMostRecent-test.js | |
Test Suites: 8 failed, 12 passed, 20 total | |
Tests: 43 failed, 110 passed, 153 total | |
Snapshots: 0 total | |
Time: 4.082 s | |
Ran all test suites matching /src\/Recoil.js|src\/RecoilUtils.js|src\/adt|src\/caches|src\/components|src\/core|src\/hooks|src\/lib|src\/npm|src\/recoil_values|src\/testing|src\/util/i. | |
error Command failed with exit code 1. | |
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. | |
[/Users/vjeux/random/Recoil] [vjeux@macbook-pro-98] | |
(517) >> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment