Loading...
Guest user 

First recorded build

 
All history
 
#73811 »
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error for an invalid address
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 290 |
[13:01:03][Step 1/1] 291 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 292 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 293 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 294 | );
[13:01:03][Step 1/1] 295 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:292:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error for an alias without .xec suffix
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error for an alias without .xec suffix
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 315 |
[13:01:03][Step 1/1] 316 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 317 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 318 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 319 | );
[13:01:03][Step 1/1] 320 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:317:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error for valid alias that has not yet been registered
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error for valid alias that has not yet been registered
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 342 |
[13:01:03][Step 1/1] 343 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 344 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 345 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 346 | );
[13:01:03][Step 1/1] 347 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:344:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays expected error if alias server gives a bad response
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays expected error if alias server gives a bad response
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 389 |
[13:01:03][Step 1/1] 390 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 391 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 392 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 393 | );
[13:01:03][Step 1/1] 394 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:391:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error if the user includes any query string
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Displays a validation error if the user includes any query string
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 429 |
[13:01:03][Step 1/1] 430 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 431 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 432 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 433 | );
[13:01:03][Step 1/1] 434 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:431:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Renders the send token notification upon successful broadcast
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Renders the send token notification upon successful broadcast
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 467 |
[13:01:03][Step 1/1] 468 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 469 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 470 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 471 | );
[13:01:03][Step 1/1] 472 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:469:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Renders the burn token success notification upon successful burn tx broadcast
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <SendToken /> › Renders the burn token success notification upon successful burn tx broadcast
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 511 |
[13:01:03][Step 1/1] 512 | // Wait for element to get token info and load
[13:01:03][Step 1/1] > 513 | await waitFor(() =>
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 514 | expect(screen.getAllByText('BEAR')[0]).toBeInTheDocument(),
[13:01:03][Step 1/1] 515 | );
[13:01:03][Step 1/1] 516 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendToken.test.js:513:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] FAIL src/components/__tests__/App.test.js (29.587 s)
[13:01:03][Step 1/1] ● <App /> › Navigation menu routes to expected components
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Navigation menu routes to expected components
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="home-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 116 |
[13:01:03][Step 1/1] 117 | // Default route is home
[13:01:03][Step 1/1] > 118 | await screen.findByTestId('home-ctn');
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 119 |
[13:01:03][Step 1/1] 120 | // Navigate to Send screen
[13:01:03][Step 1/1] 121 | await user.click(screen.queryByTestId('nav-btn-send'));
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:118:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Adding a contact to to a new contactList by clicking on tx history adds it to localforage and wallet context
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Adding a contact to to a new contactList by clicking on tx history adds it to localforage and wallet context
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="home-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 194 |
[13:01:03][Step 1/1] 195 | // We see the home container
[13:01:03][Step 1/1] > 196 | await screen.findByTestId('home-ctn');
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 197 |
[13:01:03][Step 1/1] 198 | // Open the collapse of this tx in tx history
[13:01:03][Step 1/1] 199 | await user.click(
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:196:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Adding a contact to an existing contactList by clicking on tx history adds it to localforage and wallet context
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Adding a contact to an existing contactList by clicking on tx history adds it to localforage and wallet context
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="home-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 257 |
[13:01:03][Step 1/1] 258 | // We see the home container
[13:01:03][Step 1/1] > 259 | await screen.findByTestId('home-ctn');
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 260 |
[13:01:03][Step 1/1] 261 | // Open the collapse of this tx in tx history
[13:01:03][Step 1/1] 262 | await user.click(
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:259:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › A user with legacy blank contactList in localstorage is migrated on startup
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › A user with legacy blank contactList in localstorage is migrated on startup
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="wallet-info-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 313 | // Wallet-info is rendered
[13:01:03][Step 1/1] 314 | expect(
[13:01:03][Step 1/1] > 315 | await screen.findByTestId('wallet-info-ctn'),
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 316 | ).toBeInTheDocument();
[13:01:03][Step 1/1] 317 |
[13:01:03][Step 1/1] 318 | // localforage has been updated with the new format for an empty contact list
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:315:26)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Clicking "reply" on a Cashtab Msg correctly populates the SendXec to address and amount fields
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Clicking "reply" on a Cashtab Msg correctly populates the SendXec to address and amount fields
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="wallet-info-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 333 | // Wallet-info is rendered
[13:01:03][Step 1/1] 334 | expect(
[13:01:03][Step 1/1] > 335 | await screen.findByTestId('wallet-info-ctn'),
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 336 | ).toBeInTheDocument();
[13:01:03][Step 1/1] 337 |
[13:01:03][Step 1/1] 338 | // Balance is correct
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:335:26)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › We do not see the camera auto-open setting in the config screen on a desktop device
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › We do see the camera auto-open setting in the config screen on a mobile device
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Setting "Send Confirmations" settings will show send confirmations
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Setting "Send Confirmations" settings will show send confirmations
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="home-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 438 |
[13:01:03][Step 1/1] 439 | // Default route is home
[13:01:03][Step 1/1] > 440 | await screen.findByTestId('home-ctn');
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 441 |
[13:01:03][Step 1/1] 442 | // Click the hamburger menu
[13:01:03][Step 1/1] 443 | await user.click(screen.queryByTestId('hamburger'));
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:440:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="home-ctn"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 583 |
[13:01:03][Step 1/1] 584 | // Default route is home
[13:01:03][Step 1/1] > 585 | await screen.findByTestId('home-ctn');
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 586 |
[13:01:03][Step 1/1] 587 | // Click the hamburger menu
[13:01:03][Step 1/1] 588 | await user.click(screen.queryByTestId('hamburger'));
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:585:22)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Wallet with easter egg token sees easter egg
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Wallet with easter egg token sees easter egg
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element with the alt text: tabcash
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 717 |
[13:01:03][Step 1/1] 718 | // We see the easter egg
[13:01:03][Step 1/1] > 719 | expect(await screen.findByAltText('tabcash')).toBeInTheDocument();
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 720 | });
[13:01:03][Step 1/1] 721 | it('If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 1.6.* cashtabCache', async () => {
[13:01:03][Step 1/1] 722 | // Note: this is what will happen for all Cashtab users when this diff lands
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByAltText (src/components/__tests__/App.test.js:719:29)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 1.6.* cashtabCache
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="balance-xec"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 859 |
[13:01:03][Step 1/1] 860 | // Wait balance to be rendered correctly so we know Cashtab has loaded the wallet
[13:01:03][Step 1/1] > 861 | expect(await screen.findByTestId('balance-xec')).toHaveTextContent(
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 862 | '9,513.12 XEC',
[13:01:03][Step 1/1] 863 | );
[13:01:03][Step 1/1] 864 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:861:29)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="balance-xec"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 890 |
[13:01:03][Step 1/1] 891 | // Wait balance to be rendered correctly so we know Cashtab has loaded the wallet
[13:01:03][Step 1/1] > 892 | expect(await screen.findByTestId('balance-xec')).toHaveTextContent(
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 893 | '9,513.12 XEC',
[13:01:03][Step 1/1] 894 | );
[13:01:03][Step 1/1] 895 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:892:29)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="balance-xec"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 921 |
[13:01:03][Step 1/1] 922 | // Wait balance to be rendered correctly so we know Cashtab has loaded the wallet
[13:01:03][Step 1/1] > 923 | expect(await screen.findByTestId('balance-xec')).toHaveTextContent(
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 924 | '9,513.12 XEC',
[13:01:03][Step 1/1] 925 | );
[13:01:03][Step 1/1] 926 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:923:29)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets in savedWallets has them migrated
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:03][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:03][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:03][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:03][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:03][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:03][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:03][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:03][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets in savedWallets has them migrated
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Unable to find an element by: [data-testid="balance-xec"]
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] Ignored nodes: comments, script, style
[13:01:03][Step 1/1] <body>
[13:01:03][Step 1/1] <div />
[13:01:03][Step 1/1] </body>
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 956 |
[13:01:03][Step 1/1] 957 | // Wait balance to be rendered correctly so we know Cashtab has loaded the wallet
[13:01:03][Step 1/1] > 958 | expect(await screen.findByTestId('balance-xec')).toHaveTextContent(
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 959 | '9,513.12 XEC',
[13:01:03][Step 1/1] 960 | );
[13:01:03][Step 1/1] 961 |
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:03][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:03][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:958:29)
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] ● <App /> › Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] TypeError: scripts is not iterable
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:03][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:03][Step 1/1] > 475 | for (const script of scripts) {
[13:01:03][Step 1/1] | ^
[13:01:03][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:03][Step 1/1] 477 | }
[13:01:03][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:03][Step 1/1]
[13:01:03][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:03][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:03][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:03][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:03][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:03][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:03][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:03][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:03][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:03][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:03][Step 1/1] ##teamcity[importData timestamp='2024-03-14T13:01:03.921' path='results/artifacts/junit/*.xml' type='junit']
[13:01:03][Step 1/1] Importing data from 'results/artifacts/junit/*.xml' (not existing file) with 'junit' processor
[13:01:03][Step 1/1] Publishing artifacts (1m:04s)
[13:01:03][Publishing artifacts] Collecting files to publish: [+:results/artifacts=>artifacts.tar.gz]
[13:01:03][Step 1/1] Ant JUnit report watcher
[13:01:03][Ant JUnit report watcher] Watching paths:
[13:01:03][Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[13:01:03][Publishing artifacts] Creating archive artifacts.tar.gz
[13:01:03][Creating archive artifacts.tar.gz] Creating /home/teamcity/buildAgent/temp/buildTmp/TarPreprocessor1210265615437426601/artifacts.tar.gz
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for Cashtab pre 1.7.* for unit tests initializeCashtabStateAtLegacyWalletKeysForTests mocks a new Cashtab user or incognito visitor
[13:01:03][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for Cashtab pre 1.7.* for unit tests initializeCashtabStateAtLegacyWalletKeysForTests: Wallet with xec and tokens
[13:01:03][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests mocks a new Cashtab user or incognito visitor
[13:01:03][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests: Wallet with xec and tokens
[13:01:03][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests: Multiple wallets
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint for token with decimals
[13:01:03][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint for tokenId 50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e
[13:01:03][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Invalid document hash
[13:01:03][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Missing decimals
[13:01:03][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Non-string name
[13:01:03][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node: We can get a single token utxo from an array including other token utxos and non-token utxos
[13:01:03][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node: We can get a multiple token utxos from an array including other token utxos and non-token utxos
[13:01:03][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: We return an empty array if no matches are found from a bad tokenId
[13:01:03][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node: We return an empty array if we have no tokenUtxos for a given tokenId
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSendTokenInputs: Token send with change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSendTokenInputs: Token send with no change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with no change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSendTokenInputs: Token send with decimals and change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with decimals and change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Sending more than utxos with decimals and change output
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Sending more than utxos with no decimals
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Invalid decimals
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: No token utxos
[13:01:03][CashTab Unit Tests] Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Send qty is empty string
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with no change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with no change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with decimals and change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with decimals and change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Sending more than utxos with decimals and change output
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Sending more than utxos with no decimals
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Invalid decimals
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: No token utxos
[13:01:03][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Send qty is empty string
[13:01:03][CashTab Unit Tests] Generating etoken burn tx target outputs getSlpBurnTargetOutputs: Burn a fraction of balance
[13:01:03][CashTab Unit Tests] Generating etoken burn tx target outputs getSlpBurnTargetOutputs: Burn all balance
[13:01:03][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burn a single token utxo
[13:01:03][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burns multiple token utxos
[13:01:03][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burns max slp quantity for 9 decimals
[13:01:03][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs throws error if called with in-node utxos and no specified decimals
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidSideshiftObj() returns true for a valid sideshift library object
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidSideshiftObj() returns false if the sideshift library object failed to instantiate
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidSideshiftObj() returns false for an invalid sideshift library object
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidRecipient() returns true for a valid and registered alias input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidRecipient() returns false for a valid but unregistered alias input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidRecipient() returns false for an invalid eCash address / alias input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidRecipient() returns true for a valid eCash address
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidRecipient() returns true for a valid prefix-less eCash address
[13:01:03][CashTab Unit Tests] Cashtab validation functions validateMnemonic() returns true for a valid mnemonic
[13:01:03][CashTab Unit Tests] Cashtab validation functions validateMnemonic() returns false for an invalid mnemonic
[13:01:03][CashTab Unit Tests] Cashtab validation functions validateMnemonic() returns false for an empty string mnemonic
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token name that is a stringified number
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects eToken token name if longer than 68 characters
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects eToken token name if empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a 4-char eToken token ticker
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a 12-char eToken token ticker
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects eToken token ticker if empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects eToken token ticker if > 12 chars
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts tokenDecimals if zero
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts tokenDecimals if between 0 and 9 inclusive
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects tokenDecimals if empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects tokenDecimals if non-integer
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts tokenDecimals initial genesis quantity at minimum amount for 3 decimal places
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts initial genesis quantity at minimum amount for 9 decimal places
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts initial genesis quantity at amount below 100 billion
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts highest possible initial genesis quantity at amount below 100 billion
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts initial genesis quantity if decimal places equal tokenDecimals
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts initial genesis quantity if decimal places are less than tokenDecimals
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects initial genesis quantity of zero
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects initial genesis quantity if tokenDecimals is not valid
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects initial genesis quantity if 100 billion or higher
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects initial genesis quantity if it has more decimal places than tokenDecimals
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token document URL including special URL characters
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a blank string as a valid eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects eToken token name if longer than 68 characters
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with https protocol as eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with http protocol as eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with a primary and secondary top level domain as eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with just a subdomain as eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects a domain input with no top level domain, protocol or subdomain eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions Rejects a domain input as numbers eToken token document URL
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount rejects null
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount rejects undefined
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount rejects a burn amount that is 0
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount rejects a burn amount that is negative
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount rejects a burn amount that is more than the maxAmount param
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount accepts a valid burn amount
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount accepts a valid burn amount with decimal points
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidEtokenBurnAmount accepts a valid burn amount that is the same as the maxAmount
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId accepts valid token ID that is 64 chars in length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a token ID that is less than 64 chars in length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a token ID that is more than 64 chars in length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a token ID number that is 64 digits in length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects null
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects undefined
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects special character input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects non-alphanumeric input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop accepts valid Total Airdrop Amount
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop rejects null
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop rejects undefined
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop rejects empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects an alphanumeric input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a number !> 0 in string format
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray accepts an airdrop list with valid XEC values
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray rejects an airdrop list with invalid XEC values
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray rejects null
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray rejects undefined
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray rejects empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray rejects an airdrop list with multiple invalid XEC values per row
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropOutputsArray rejects an airdrop list with multiple valid XEC values per row
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray accepts a valid airdrop exclusion list
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects an invalid airdrop exclusion list
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects an empty airdrop exclusion list
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects a null airdrop exclusion list
[13:01:03][CashTab Unit Tests] Cashtab validation functions accepts a valid wallet name
[13:01:03][CashTab Unit Tests] Cashtab validation functions rejects wallet name that is too long
[13:01:03][CashTab Unit Tests] Cashtab validation functions rejects blank string as new wallet name
[13:01:03][CashTab Unit Tests] Cashtab validation functions rejects wallet name of the wrong type
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes "bitcoin" is probably a scam token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes "ebitcoin" is probably a scam token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes "Lido Staked Ether", from coingeckoTop500Names, is probably a scam token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'matic-network', from coingeckoTop500Ids, is probably a scam token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'Australian Dollar', from Cashtab supported fiat currencies, is probably a scam token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'ebtc', from bannedTickers, is probably a scam token name
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'gbp', from bannedTickers, is probably a scam
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'Hong Kong Dollar', from fiatNames, is probably a scam
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes '₪', from fiat symbols, is probably a scam
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes an ordinary token name as acceptable
[13:01:03][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam accepts a token name with fragments of banned potential scam names
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects a string that starts with 6a
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects a string that starts with invalid pushdata
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects non-string input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects non-hex input
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam supports a valid hex string under max length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam supports a valid hex string under max length with mixed capitalization
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam supports a valid hex string of max length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects a string with empty spaces
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects an empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects a valid hex string exceeding max length
[13:01:03][CashTab Unit Tests] Cashtab validation functions isValidOpreturnParam rejects a valid hex string that has uneven length (i.e., half a byte)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on startup
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled if address has been entered but no value
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled for valid address and value
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on zero balance
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid address
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid value
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid opreturn msg
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on priceApi error
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled if isOneToManyXECSend and value is not entered
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Blank string
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Address only and no querystring
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: prefixless address input
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: alias only and no querystring
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: alias missing .xec suffix
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param equal to user balance, no decimals
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param exceeding user balance by one satoshi, no decimals
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param, with decimals
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Invalid address with valid amount param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: etoken address with valid amount param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with invalid amount param (too many decimal places)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid alias with valid amount param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Invalid alias with valid amount param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid op_return_raw param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid alias with valid op_return_raw param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with invalid op_return_raw param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid amount and op_return_raw params
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: invalid querystring (unsupported params)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Invalid queryString, repeated param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Repeated op_return_raw param
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns true for a valid lowercase alphanumeric input
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains uppercase char
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains special char
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains emoji
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains other special characters
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input is an empty string
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains an empty space
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains symbols
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input is not a string
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains underscores
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if exceeds byte restriction
[13:01:03][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns true for an alias of max bytecount
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias send input
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias missing prefix
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias with double suffix
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias with bad suffix
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Invalid alias (too long)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Invalid alias (nonalphanumeric)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Legacy empty contact list
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Empty contact list
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Array of more than one empty object is invalid
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: List with one valid entry
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Multiple valid entries
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Valid objects but also an empty object is false
[13:01:03][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Valid alias formats are accepted
[13:01:03][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: Migrates a 1.4.x user to 1.5.0 settings
[13:01:03][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: User with only fiatCurrency in settings
[13:01:03][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: Migrates an empty object to default settings
[13:01:03][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: Returns object unchanged if it has all expected keys
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: A 1.4.x settings object is invalid
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: A 1.5.0 settings object is valid
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: Rejects an otherwise-valid settings object if the currency is not supported
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: Rejects an otherwise-valid settings object if a ticker is misnamed
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: Rejects an otherwise-valid settings object if it is from before the introduction of sendModal
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns false for legacy cashtabCache
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns false if there is not a map at tokens key
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns true for current version cashtabCache
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns true for default cashtabCache
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns true for a valid Cashtab wallet
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if not an object
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if false (used to indicate no wallet yet set)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing mnemonic
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing name
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing paths
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing hash in path1899 path object
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing address in path1899 path object
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing wif in path1899 path object
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing wif in a secondary path object
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet has no path info objects
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet.state is not an object
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no balanceSats in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if balances in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if balanceSats is not a number
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no slpUtxos in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no nonSlpUtxos in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no tokens in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if hydratedUtxoDetails is in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if slpBalancesAndUtxos is in wallet.state
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: Dust minimum is valid
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: 1 satoshi below dust min is invalid
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: 0 is not a valid send amount
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value with one decimal place not exceeding user balance is accepted
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value with two decimal places not exceeding user balance is accepted
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value with more than two decimal places not exceeding user balance is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value using a decimal marker other than "." is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A non-number string is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: null is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: undefined is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value including non-numerical characters is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value exactly matching wallet balance is accepted
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value exceeding wallet balance by 1 satoshi is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to less than the user total balance is accepted
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to one satoshi more than the user total balance is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to more than the user total balance is rejected
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to more than the user total balance is rejected with error formatted in non-default locale
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Accepts correctly formed multisend output for amount exactly equal to wallet total balance
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Rejects correctly formed multisend output for amount exceeding wallet total balance by 1 satoshi
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Accepts correctly formed multisend output for amount exactly equal to wallet total balance if addresses are padded by extra spaces
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number if string includes an invalid address
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg for invalid value (dust)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line numberfor invalid value (too many decimal places)
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg for an empty input
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number for an empty row
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg for non-string input
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number if csv line does not include address and value
[13:01:03][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number if a line has more than one comma
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions getTokenStats successfully returns a token stats object
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions getPreliminaryTokensArray successfully returns an array of all tokenIds and token balances (not yet adjusted for token decimals)
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions finalizeTokensArray successfully returns finalTokenArray and cachedTokenInfoById even if no cachedTokenInfoById is provided
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions finalizeTokensArray successfully returns finalTokenArray and cachedTokenInfoById when called with all token info in cache
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions updateCachedTokenInfoAndFinalizeTokensArray successfully returns finalTokenArray and cachedTokenInfoById when called with some token info in cache
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions flattenChronikTxHistory successfully combines the result of getTxHistoryChronik into a single array
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for TabCash token
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for PoW token
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for Alita token
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for a BUX self minted token
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Staking rewards coinbase tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Incoming XEC tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Outgoing XEC tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Alias registration
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Incoming eToken
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Outgoing eToken
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Genesis tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Incoming eToken tx with 9 decimals
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Legacy airdrop tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Outgoing encrypted msg (deprecated)
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Incoming encrypted msg (deprecated)
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Token burn tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Token burn tx with decimals
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Incoming eToken tx less than zero with decimals
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: SWaP tx
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Pre-spec alias registration (now off spec)
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: PayButton tx with no data and payment id
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: PayButton tx with data and payment id
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: PayButton tx with no data and no payment id
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: PayButton tx with data and no payment id
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: PayButton tx with unsupported version number
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: Paybutton tx that does not have spec number of pushes
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseChronikTx: External msg received from Electrum
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Sorts and trims chronik tx history sortAndTrimChronikTxHistory: successfully orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if all txs are confirmed
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Sorts and trims chronik tx history sortAndTrimChronikTxHistory: orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if some txs are confirmed and others unconfirmed
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Sorts and trims chronik tx history sortAndTrimChronikTxHistory: orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if all txs are unconfirmed,
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Splits token utxos and non-token utxos using real in-node utxos
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Splits token utxos and non-token utxos
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Returns empty array for nonSlpUtxos if all utxos are token utxos
[13:01:03][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Returns empty array for preliminarySlpUtxos if no token utxos found
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] sumOneToManyXec() correctly parses the value for a valid one to many send XEC transaction
[13:01:03][CashTab Unit Tests] sumOneToManyXec() correctly parses the value for a valid one to many send XEC transaction with decimals
[13:01:03][CashTab Unit Tests] sumOneToManyXec() returns NaN for an address and value array that is partially typed or has invalid format
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertToEcashPrefix converts a bitcoincash: prefixed address to an ecash: prefixed address
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertToEcashPrefix returns an ecash: prefix address unchanged
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr successfully converts a valid eToken address to eCash
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr successfully converts prefixless eToken address as input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with an invalid eToken address as input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with an ecash address as input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with null input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with empty string input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr successfully converts a valid ecash address into an etoken address
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr successfully converts a valid prefix-less ecash address into an etoken address
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr throws error with invalid ecash address input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr throws error with a valid etoken address input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr throws error with a valid bitcoincash address input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenPrefix throws error with null ecash address input
[13:01:03][CashTab Unit Tests] Correctly executes cash utility functions Successfully extracts a hash160 array from valid cashtab wallet
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address if all utxos are mature coinbase utxos
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address with an OP_RETURN output
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address with an OP_RETURN output at index 0
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2sh address
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 10 sat/byte
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1 satoshi per byte tx with no change outputs
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1 satoshi per byte tx with no change outputs from a wallet with utxos at many addresses
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1 satoshi per byte tx broadcast actually broadcast with this function
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: No precision error using JS Number on utxo with highest theoretically possible value
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 15000 satoshis with 1 change output at 1 sat/byte to 5 p2pkh addresses
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 15000 satoshis with 1 change output at 1 sat/byte to 5 p2sh outputs
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Sending below dust threshold
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Sending above wallet balance
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Sending within wallet balance but insufficient to cover fee
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Attempting to create a tx with fee rate below 1 sat/byte
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Tx with utxos for which the wallet has no private keys
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: throws broadcast error from the node
[13:01:03][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Insufficient balance due to immature coinbase utxos
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Airdrop
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Multisend format with extra space around address and value
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: One address in multi format
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Multisend including a non-integer JS result
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Invalid multisend input (dust)
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Too many decimal places
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Use of comma as decimal place marker
[13:01:03][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Too many commas on one line
[13:01:03][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with no coinbase utxos returned unchanged
[13:01:03][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with immature coinbase utxo returned without immature coinbase utxo
[13:01:03][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with some immature coinbase utxos and some mature coinbase utxos returned without immature coinbase utxo
[13:01:03][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: If blockheight is zero, all coinbase utxos are removed
[13:01:03][CashTab Unit Tests] We can create and broadcast SLP v1 SEND and BURN txs from utxos of nng or in-node chronik shape Build and broadcast an SLP V1 SEND and BURN tx from in-node chronik-client utxos: SLP send and burn with token change, NNG utxo shape
[13:01:03][CashTab Unit Tests] We can create and broadcast SLP v1 SEND and BURN txs from utxos of nng or in-node chronik shape Build and broadcast an SLP V1 SEND and BURN tx from in-node chronik-client utxos: SLP send and BURN with no token change, NNG utxo shape
[13:01:03][CashTab Unit Tests] We can create and broadcast SLP v1 SEND and BURN txs from utxos of nng or in-node chronik shape Build and broadcast an SLP V1 SEND and BURN tx from in-node chronik-client utxos: SLP max send tx using all available input utxos
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] <BalanceHeader /> Renders the loader if balanceSats is not an integer
[13:01:03][CashTab Unit Tests] <BalanceHeader /> Renders the BalanceHeader component correctly with default locale en-US
[13:01:03][CashTab Unit Tests] <BalanceHeader /> Renders the BalanceHeader component correctly with fr-FR locale
[13:01:03][CashTab Unit Tests] <BalanceHeader /> Balance is hidden if cashtabSettings.balanceVisible is false
[13:01:03][CashTab Unit Tests] <BalanceHeader /> Renders fiat price for a non-USD currency
[13:01:03][CashTab Unit Tests] <BalanceHeader /> Fiat price and forex are not displayed if fiatPrice is unavailable
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput: Alphanumeric string
[13:01:03][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput: String with emojis
[13:01:03][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput: String of max length for Cashtab Msg
[13:01:03][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: String exceeding max length for Cashtab Msg by 1 byte
[13:01:03][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: non-string input
[13:01:03][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: Empty string
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput Airdrop with no optional msg
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput Airdrop with many spaces for optional msg treated as no optional msg
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput Airdrop with optional alphanumeric msg
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput Airdrop with optional emoji and special characters msg
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput Airdrop with optional msg of max allowable length
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput getAirdropTargetOutput throws error for: Invalid tokenId provided
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput getAirdropTargetOutput throws error for: Airdrop msg exceeding max length for airdrop msg by 1 byte
[13:01:03][CashTab Unit Tests] getAirdropTargetOutput getAirdropTargetOutput throws error for: non-string input for airdrop msg
[13:01:03][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput: Valid alias to p2pkh address
[13:01:03][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput: Valid alias to p2sh address
[13:01:03][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput throws error for: Invalid alias
[13:01:03][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput throws error for: Invalid address
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with emoji
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with emoji and text
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with special characters
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with Korean text
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with Arabic text
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with Chinese text
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with mixed foreign alphabets and emoji
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alphanumeric valid v0 alias
[13:01:03][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount throws error for: non-text input
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: a single emoji
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with characters and emojis
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with special characters
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with a mixture of symbols, multilingual characters and emojis
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: Alphanumeric string
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: String with emojis
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: String of max length for Cashtab Msg
[13:01:03][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount throws error for: non-text input
[13:01:03][CashTab Unit Tests] Build target output for opreturn as bip21 param getOpreturnParamTargetOutput: Valid opreturn param input
[13:01:03][CashTab Unit Tests] Build target output for opreturn as bip21 param getOpreturnParamTargetOutput: Max length for opreturn param
[13:01:03][CashTab Unit Tests] Build target output for opreturn as bip21 param getOpreturnParamTargetOutput throws error for: Invalid opreturn param input
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] queryAliasServer() correctly throws a network error for server downtime or a malformed fetch url
[13:01:03][CashTab Unit Tests] queryAliasServer() correctly returns an array of alias objects for a valid eCash address that has registered aliases
[13:01:03][CashTab Unit Tests] queryAliasServer() correctly returns an array of alias objects for a valid prefix-less eCash address that has registered aliases
[13:01:03][CashTab Unit Tests] queryAliasServer() returns an empty array for a valid eCash address with no aliases
[13:01:03][CashTab Unit Tests] queryAliasServer() throws an error for an invalid eCash address
[13:01:03][CashTab Unit Tests] queryAliasServer() returns an alias object for a registered alias
[13:01:03][CashTab Unit Tests] queryAliasServer() returns an api error for a non-alphanumeric alias
[13:01:03][CashTab Unit Tests] queryAliasServer() returns a valid object for an unregistered alias
[13:01:03][CashTab Unit Tests] queryAliasServer() returns an error for an alias longer than 21 characters
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states localforage can set and get a map of tokeninfo by tokenId
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price is set in state on successful API fetch
[13:01:03][useWallet hook rendering in different localforage states XEC price is set in state on successful API fetch] Error: expect(received).toBe(expected) // Object.is equality Expected: 0.00003 Received: null Ignored nodes: comments, script, style <html> <head /> <body> <div /> </body> </html> at toBe (/work/cashtab/src/hooks/__tests__/useWallet.test.js:97:46) at runWithExpensiveErrorDiagnosticsDisabled (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:47:12) at checkCallback (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:124:77) at checkRealTimersCallback (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:118:16) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price remains null in state on API error
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price is set in state to fiat currency of user settings on successful API fetch
[13:01:03][useWallet hook rendering in different localforage states XEC price is set in state to fiat currency of user settings on successful API fetch] Error: expect(received).toBe(expected) // Object.is equality Expected: 0.00003132 Received: null Ignored nodes: comments, script, style <html> <head /> <body> <div /> </body> </html> at toBe (/work/cashtab/src/hooks/__tests__/useWallet.test.js:153:46) at runWithExpensiveErrorDiagnosticsDisabled (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:47:12) at checkCallback (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:124:77) at checkRealTimersCallback (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:118:16) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states Cashtab loads wallet, settings, cache, and contactlist from localforage to context if they are present
[13:01:03][useWallet hook rendering in different localforage states Cashtab loads wallet, settings, cache, and contactlist from localforage to context if they are present] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at /work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26769:9 at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states processChronikWsMsg() refreshes alias prices when aliasPrices is null
[13:01:03][useWallet hook rendering in different localforage states processChronikWsMsg() refreshes alias prices when aliasPrices is null] Error: expect(received).toStrictEqual(expected) // deep equality Expected: {"note": "alias-server is in beta and these prices are not finalized.", "prices": [{"fees": {"1": 558, "10": 551, "11": 551, "12": 551, "13": 551, "14": 551, "15": 551, "16": 551, "17": 551, "18": 551, "19": 551, "2": 557, "20": 551, "21": 551, "3": 556, "4": 555, "5": 554, "6": 553, "7": 552, "8": 551, "9": 551}, "startHeight": 823950}]} Received: null at Object.toStrictEqual (/work/cashtab/src/hooks/__tests__/useWallet.test.js:274:44)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states processChronikWsMsg() refreshes alias prices when aliasPrices exists, server and cashtab prices array length do not match
[13:01:03][useWallet hook rendering in different localforage states processChronikWsMsg() refreshes alias prices when aliasPrices exists, server and cashtab prices array length do not match] Error: expect(received).toEqual(expected) // deep equality Expected: {"note": "alias-server is in beta and these prices are not finalized.", "prices": [{"fees": {"1": 558, "10": 9999999999999, "11": 551, "12": 551, "13": 551, "14": 551, "15": 551, "16": 551, "17": 551, "18": 551, "19": 551, "2": 557, "20": 551, "21": 551, "3": 556, "4": 555, "5": 554, "6": 553, "7": 552, "8": 551, "9": 551}, "startHeight": 823944}, {"fees": {"1": 558, "10": 551, "11": 551, "12": 551, "13": 551, "14": 551, "15": 551, "16": 551, "17": 551, "18": 551, "19": 551, "2": 557, "20": 551, "21": 551, "3": 556, "4": 555, "5": 554, "6": 553, "7": 552, "8": 551, "9": 551}, "startHeight": 823950}]} Received: null at Object.toEqual (/work/cashtab/src/hooks/__tests__/useWallet.test.js:399:44)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states processChronikWsMsg() does not refresh alias prices when aliasPrices exists, server and cashtab array length do match
[13:01:03][useWallet hook rendering in different localforage states processChronikWsMsg() does not refresh alias prices when aliasPrices exists, server and cashtab array length do match] Error: expect(received).toStrictEqual(expected) // deep equality Expected: {"note": "alias-server is in beta and these prices are not finalized.", "prices": [{"fees": {"1": 558, "10": 9999999999999, "11": 551, "12": 551, "13": 551, "14": 551, "15": 551, "16": 551, "17": 551, "18": 551, "19": 551, "2": 557, "20": 551, "21": 551, "3": 556, "4": 555, "5": 554, "6": 553, "7": 552, "8": 551, "9": 551}, "startHeight": 111111}, {"fees": {"1": 558, "10": 551, "11": 551, "12": 551, "13": 551, "14": 551, "15": 551, "16": 551, "17": 551, "18": 551, "19": 551, "2": 557, "20": 551, "21": 551, "3": 556, "4": 555, "5": 554, "6": 553, "7": 552, "8": 551, "9": 551}, "startHeight": 823950}]} Received: null at Object.toStrictEqual (/work/cashtab/src/hooks/__tests__/useWallet.test.js:553:44)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states Verify a processChronikWsMsg() new block event updates the `aliasServerError` state var upon a /prices/ endpoint error
[13:01:03][useWallet hook rendering in different localforage states Verify a processChronikWsMsg() new block event updates the `aliasServerError` state var upon a /prices/ endpoint error] Error: expect(received).toStrictEqual(expected) // deep equality Expected: [Error: Invalid response from alias prices endpoint] Received: false at Object.toStrictEqual (/work/cashtab/src/hooks/__tests__/useWallet.test.js:588:49)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states Verify refreshAliases() updates the `aliases` state variable on a successful /address/ endpoint response
[13:01:03][useWallet hook rendering in different localforage states Verify refreshAliases() updates the `aliases` state variable on a successful /address/ endpoint response] Error: expect(received).toStrictEqual(expected) // deep equality - Expected - 14 + Received + 1 Object { "pending": Array [], - "registered": Array [ - Object { - "address": "ecash:qpmytrdsakt0axrrlswvaj069nat3p9s7cjctmjasj", - "alias": "jane", - "blockheight": 792418, - "txid": "0c77e4f7e0ff4f1028372042cbeb97eaddb64d505efe960b5a1ca4fce65598e2", - }, - Object { - "address": "ecash:qpmytrdsakt0axrrlswvaj069nat3p9s7cjctmjasj", - "alias": "john", - "blockheight": 792417, - "txid": "ec92610fc41df2387e7febbb358b138a802ac26023f30b2442aa01ca733fff7d", - }, - ], + "registered": Array [], } at Object.toStrictEqual (/work/cashtab/src/hooks/__tests__/useWallet.test.js:641:40)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states Verify refreshAliases() updates the `aliasServerError` state variable upon an /address/ endpoint error
[13:01:03][useWallet hook rendering in different localforage states Verify refreshAliases() updates the `aliasServerError` state variable upon an /address/ endpoint error] Error: expect(received).toStrictEqual(expected) // deep equality Expected: "Error: Unable to retrieve aliases" Received: false at Object.toStrictEqual (/work/cashtab/src/hooks/__tests__/useWallet.test.js:678:49)
[13:01:03][CashTab Unit Tests] useWallet hook rendering in different localforage states An incoming tx message from the websocket causes the wallet to update
[13:01:03][useWallet hook rendering in different localforage states An incoming tx message from the websocket causes the wallet to update] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at /work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26769:9 at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] <Tx /> Renders the timestamp if timeFirstSeen !== 0
[13:01:03][CashTab Unit Tests] <Tx /> Renders the timestamp as block timestamp timeFirstSeen === 0
[13:01:03][CashTab Unit Tests] <Tx /> Does not render a timestamp for an unconfirmed tx with timeFirstSeen === '0'
[13:01:03][CashTab Unit Tests] <Tx /> Renders from contact name if a tx is from an address in contact list
[13:01:03][CashTab Unit Tests] <Tx /> Does not render from contact name if a tx is not from an address in contact list
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with an input of 0
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with zero XEC balance input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with a small XEC balance input with 2+ decimal figures
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with 1 Million XEC balance input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with 1 Billion XEC balance input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with total supply as XEC balance input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with > total supply as XEC balance input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with no balance
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with null input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with undefined as input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with non-numeric input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions Accepts a valid unix timestamp
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions Accepts an empty string and generates a new timestamp
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions Accepts no parameter and generates a new timestamp
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions Accepts 'undefined' as a parameter and generates a new date
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions Rejects an invalid string containing letters.
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions Rejects an invalid string containing numbers.
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with zero XEC balance input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with a small XEC balance input with 2+ decimal figures
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with a large XEC balance input with 2+ decimal figures
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with no balance
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with null input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with undefined input
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions returns undefined formatTokenBalance with undefined inputs
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions test formatTokenBalance with valid balance & decimal inputs
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions returns undefined when passed invalid decimals parameter
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions returns undefined when passed invalid balance parameter
[13:01:03][CashTab Unit Tests] Correctly executes formatting functions maintains trailing zeros in balance per tokenDecimal parameter
[13:01:03][Step 1/1] CashTab Unit Tests
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Kind of a normal balance calculation
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Wallet balance of total XEC supply
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Empty array returns 0 balance
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Array containing valid and invalid chronik utxos returns NaN
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Array containing invalid chronik utxos returns NaN
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats throws error for: Call with non-Array
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: Total XEC supply
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: Total XEC supply
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: Total XEC supply less 1 satoshi
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: Total XEC supply less 1 satoshi
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: 0 is 0
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: 0 is 0
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis toXec throws error for: Bad XEC amount, too many decimal places
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis toSatoshis throws error for: Bad XEC amount, too many decimal places
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Determines if the wallet has greater than or equal to a specified qty of a specified token hasEnoughToken: Returns true if wallet has token in exactly required amount
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Determines if the wallet has greater than or equal to a specified qty of a specified token hasEnoughToken: Returns false if wallet has token but less than required amount
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Determines if the wallet has greater than or equal to a specified qty of a specified token hasEnoughToken: Returns false if wallet does not have this token
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Creates a wallet from valid bip39 mnemonic createCashtabWallet: Creates a Cashtab wallet from a valid bip39 mnemonic
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts 1 USD from fiat to satoshis for string input
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts total XEC supply in USD from fiat to satoshis for string input
[13:01:03][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Returns an integer even if input has arbitrarily high decimal precision for string input
[13:01:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts 1 USD from fiat to satoshis for number input
[13:01:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts total XEC supply in USD from fiat to satoshis for number input
[13:01:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Returns an integer even if input has arbitrarily high decimal precision for number input
[13:01:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Determines legacy paths for a post-2.2.0 wallet with legacy paths
[13:01:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Determines legacy paths for a pre-2.2.0 wallet with legacy paths
[13:01:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Returns an empty array if the wallet contains no legacy paths
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <CreateTokenForm /> User can input valid token parameters, generate a token, and view a success notification
[13:01:04][<CreateTokenForm /> User can input valid token parameters, generate a token, and view a success notification] Error: Unable to find an element with the placeholder text of: Enter a name for your token Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByPlaceholderText (/work/cashtab/src/components/Etokens/__tests__/CreateTokenForm.test.js:104:26)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon successfully signing a message
[13:01:04][<SignVerifyMsg /> Notification is rendered upon successfully signing a message] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.dispatchEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22) at Object.dispatchUIEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26) at Mouse.up (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:100:30) at PointerHost.release (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:84:28) at pointerAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:59:47) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.pointer (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:9) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js:94:9)
[13:01:04][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon successfully verifying a message
[13:01:04][<SignVerifyMsg /> Notification is rendered upon successfully verifying a message] TestingLibraryElementError: Unable to find an element with the placeholder text of: XEC Address Ignored nodes: comments, script, style <body> <div /> </body> at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByPlaceholderText (/work/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js:137:20)
[13:01:04][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon signature verification error
[13:01:04][<SignVerifyMsg /> Notification is rendered upon signature verification error] TestingLibraryElementError: Unable to find an element with the placeholder text of: Enter message to verify Ignored nodes: comments, script, style <body> <div /> </body> at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByPlaceholderText (/work/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js:178:20)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <ScanQRCode /> Renders the modal on load if loadWithCameraOpen is true
[13:01:04][CashTab Unit Tests] <ScanQRCode /> Does not render the modal on load if loadWithCameraOpen is false
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <CreateToken /> If wallet has sufficient XEC, renders CreateTokenForm
[13:01:04][<CreateToken /> If wallet has sufficient XEC, renders CreateTokenForm] Error: Unable to find an element with the text: Create a Token. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Etokens/__tests__/CreateToken.test.js:84:29)
[13:01:04][CashTab Unit Tests] <CreateToken /> If wallet has insufficient XEC, renders component but does not render CreateTokenForm
[13:01:04][<CreateToken /> If wallet has insufficient XEC, renders component but does not render CreateTokenForm] Error: Unable to find an element with the text: You need at least 5.5 XEC ($0.0002 USD) to create a token. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Etokens/__tests__/CreateToken.test.js:113:26)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Navigator is undefined
[13:01:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Navigator.userAgentData is undefined
[13:01:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Desktop device on browser with userAgentData support
[13:01:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Mobile device on browser with userAgentData support
[13:01:04][CashTab Unit Tests] Cashtab helper functions Get user locale getUserLocale: navigator is undefined
[13:01:04][CashTab Unit Tests] Cashtab helper functions Get user locale getUserLocale: navigator.language is undefined
[13:01:04][CashTab Unit Tests] Cashtab helper functions Get user locale getUserLocale: navigator.language is defined and not the default
[13:01:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabCache to and from JSON for storage and in-app use cashtabCacheToJSON and storedCashtabCacheToMap: Converts cashtabCache with populated token cache to JSON for storage
[13:01:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabCache to and from JSON for storage and in-app use cashtabCacheToJSON and storedCashtabCacheToMap: Converts cashtabCache with empty token cache to JSON for storage
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <QRCode /> QRCode copying ecash address
[13:01:04][CashTab Unit Tests] <QRCode /> QRCode copying eToken address
[13:01:04][CashTab Unit Tests] <QRCode /> QRCode will render without address
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <Configure /> We can add, delete, rename, contacts from the Configure screen, and add a savedWallet as a contact
[13:01:04][<Configure /> We can add, delete, rename, contacts from the Configure screen, and add a savedWallet as a contact] Error: Unable to find an element by: [data-testid="contact-list-items"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:134:22) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <Configure /> Confirm mocked bip39.generateMnemonic() returns the expected seed
[13:01:04][CashTab Unit Tests] <Configure /> We can rename the active wallet or a saved wallet, we can add a wallet, we can import a wallet, we can delete a wallet
[13:01:04][<Configure /> We can rename the active wallet or a saved wallet, we can add a wallet, we can import a wallet, we can delete a wallet] Error: Unable to find an element with the text: alpha. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:348:29)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <CashtabTestWrapper /> With default props, renders App component
[13:01:04][<CashtabTestWrapper /> With default props, renders App component] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/fixtures/__tests__/CashtabTestWrapper.test.js:91:29)
[13:01:04][CashTab Unit Tests] <CashtabTestWrapper /> We can render other pages by passing the route
[13:01:04][<CashtabTestWrapper /> We can render other pages by passing the route] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <Receive /> Renders as expected on desktop, including copy paste functionality of clicking on the QR code
[13:01:04][<Receive /> Renders as expected on desktop, including copy paste functionality of clicking on the QR code] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Receive/__tests__/Receive.test.js:109:29)
[13:01:04][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of expected width for smallest supported mobile view
[13:01:04][<Receive /> Renders the Receive screen with QR code of expected width for smallest supported mobile view] Error: Unable to find an element by: [data-testid="receive-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/Receive/__tests__/Receive.test.js:168:29)
[13:01:04][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of size that is fully viewable in extension dimensions
[13:01:04][<Receive /> Renders the Receive screen with QR code of size that is fully viewable in extension dimensions] Error: Unable to find an element by: [data-testid="receive-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/Receive/__tests__/Receive.test.js:217:29)
[13:01:04][CashTab Unit Tests] <Receive /> Renders the Onboarding screen if user navigates to this route without a wallet
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <Home /> Renders the loading component while loading, then the Home screen
[13:01:04][<Home /> Renders the loading component while loading, then the Home screen] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Home/__tests__/Home.test.js:99:29)
[13:01:04][CashTab Unit Tests] <Home /> Renders the Home screen with API error
[13:01:04][<Home /> Renders the Home screen with API error] Error: Unable to find an element with the text: Error in chronik connection. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Home/__tests__/Home.test.js:122:26)
[13:01:04][CashTab Unit Tests] <Home /> Renders backup warning and QR Code if user loads with a new wallet
[13:01:04][<Home /> Renders backup warning and QR Code if user loads with a new wallet] Error: Unable to find an element with the text: Backup your wallet. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Home/__tests__/Home.test.js:139:22)
[13:01:04][CashTab Unit Tests] <Home /> Renders the onboarding screen for a new wallet
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered
[13:01:04][<Alias /> Registered and Pending Aliases are correctly rendered] Error: Unable to find an element by: [data-testid="registered-aliases-list"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Alias/__tests__/Alias.test.js:119:22)
[13:01:04][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered when pending list is empty
[13:01:04][<Alias /> Registered and Pending Aliases are correctly rendered when pending list is empty] Error: Unable to find an element by: [data-testid="registered-aliases-list"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Alias/__tests__/Alias.test.js:167:22)
[13:01:04][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered when registered list is empty
[13:01:04][<Alias /> Registered and Pending Aliases are correctly rendered when registered list is empty] Error: Unable to find an element by: [data-testid="pending-aliases-list"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Alias/__tests__/Alias.test.js:220:22) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <Alias /> Registered and Pending lists still renders when aliasValidationError is populated and aliasServerError is false
[13:01:04][<Alias /> Registered and Pending lists still renders when aliasValidationError is populated and aliasServerError is false] Error: Unable to find an element by: [data-testid="registered-aliases-list"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Alias/__tests__/Alias.test.js:257:22)
[13:01:04][CashTab Unit Tests] <Alias /> Registered and Pending lists do not render when aliasValidationError is false and aliasServerError is populated
[13:01:04][<Alias /> Registered and Pending lists do not render when aliasValidationError is false and aliasServerError is populated] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <SendXec /> Renders the SendXec screen with send address input
[13:01:04][<SendXec /> Renders the SendXec screen with send address input] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass valid address to Send To field
[13:01:04][<SendXec /> Pass valid address to Send To field] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.focusElement (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/focus.js:24:19) at Mouse.down (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:81:19) at PointerHost.press (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:37:24) at pointerAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:56:43) at Object.pointer (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:15) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.type (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/utility/type.js:18:9) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:142:9)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass valid alias to Send To field
[13:01:04][<SendXec /> Pass valid alias to Send To field] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.focusElement (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/focus.js:24:19) at Mouse.down (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:81:19) at PointerHost.press (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:37:24) at pointerAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:56:43) at Object.pointer (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:15) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.type (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/utility/type.js:18:9) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:208:9)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass an invalid address to Send To field and get a validation error
[13:01:04][<SendXec /> Pass an invalid address to Send To field and get a validation error] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.focusElement (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/focus.js:24:19) at Mouse.down (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:81:19) at PointerHost.press (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:37:24) at pointerAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:56:43) at Object.pointer (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:15) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.type (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/utility/type.js:18:9) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:264:9)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a possibly valid alias without .xec suffix to Send To field and get expected error
[13:01:04][<SendXec /> Pass a possibly valid alias without .xec suffix to Send To field and get expected error] Error: expect(element).toHaveValue(aliasnosuffix) Expected the element to have value: aliasnosuffix Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:308:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid alias to Send To field that has not yet been registered and get expected error
[13:01:04][<SendXec /> Pass a valid alias to Send To field that has not yet been registered and get expected error] Error: expect(element).toHaveValue(notregistered.xec) Expected the element to have value: notregistered.xec Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:369:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Get expected error msg and send disabled if bad response from alias server
[13:01:04][<SendXec /> Get expected error msg and send disabled if bad response from alias server] Error: expect(element).toHaveValue(servererror.xec) Expected the element to have value: servererror.xec Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:425:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount param to Send To field
[13:01:04][<SendXec /> Pass a valid address and bip21 query string with valid amount param to Send To field] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=500) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=500 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:471:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid alias and bip21 query string with valid amount param to Send To field
[13:01:04][<SendXec /> Pass a valid alias and bip21 query string with valid amount param to Send To field] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.dispatchEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22) at Object.dispatchUIEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26) at commitInput (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14) at editInputElement (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9) at Object.input (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9) at /work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26 at Object.dispatchEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13) at Object.dispatchUIEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26) at KeyboardHost.keydown (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22) at keyboardAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35) at Object.keyboard (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.type (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:536:9)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with invalid amount param (dust) to Send To field
[13:01:04][<SendXec /> Pass a valid address and bip21 query string with invalid amount param (dust) to Send To field] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.dispatchEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22) at Object.dispatchUIEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26) at commitInput (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14) at editInputElement (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9) at Object.input (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9) at /work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26 at Object.dispatchEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13) at Object.dispatchUIEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26) at KeyboardHost.keydown (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22) at keyboardAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35) at Object.keyboard (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.type (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:595:9)
[13:01:04][CashTab Unit Tests] <SendXec /> Valid address with valid bip21 query string with valid amount param rejected if amount exceeds wallet balance
[13:01:04][<SendXec /> Valid address with valid bip21 query string with valid amount param rejected if amount exceeds wallet balance] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=1000000) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=1000000 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:644:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid alias and bip21 query string with invalid amount param (too many decimals) to Send To field
[13:01:04][<SendXec /> Pass a valid alias and bip21 query string with invalid amount param (too many decimals) to Send To field] Error: expect(element).toHaveValue(chicken.xec?amount=500.123) Expected the element to have value: chicken.xec?amount=500.123 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:713:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid address and an invalid bip21 query string
[13:01:04][<SendXec /> Pass a valid address and an invalid bip21 query string] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?notaparam=500) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?notaparam=500 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:771:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with op_return_raw param to Send To field
[13:01:04][<SendXec /> Pass a valid address and bip21 query string with op_return_raw param to Send To field] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?op_return_raw=0401020304) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?op_return_raw=0401020304 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:820:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount and op_return_raw params to Send To field
[13:01:04][<SendXec /> Pass a valid address and bip21 query string with valid amount and op_return_raw params to Send To field] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=500&op_return_raw=0401020304) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=500&op_return_raw=0401020304 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:877:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount and invalid op_return_raw params to Send To field
[13:01:04][<SendXec /> Pass a valid address and bip21 query string with valid amount and invalid op_return_raw params to Send To field] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=500&op_return_raw=notahexstring) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=500&op_return_raw=notahexstring Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:934:32)
[13:01:04][CashTab Unit Tests] <SendXec /> Clicking "Send" will send a valid tx with op_return_raw after entry of a valid address and bip21 query string with valid amount and op_return_raw params to Send To field
[13:01:04][<SendXec /> Clicking "Send" will send a valid tx with op_return_raw after entry of a valid address and bip21 query string with valid amount and op_return_raw params to Send To field] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1000:32)
[13:01:04][CashTab Unit Tests] <SendXec /> We can calculate max send amount with and without a cashtab msg, and send a max sat tx with a cashtab msg
[13:01:04][<SendXec /> We can calculate max send amount with and without a cashtab msg, and send a max sat tx with a cashtab msg] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at flushActQueue (/work/cashtab/node_modules/react/cjs/react.development.js:2667:24) at act (/work/cashtab/node_modules/react/cjs/react.development.js:2582:11) at /work/cashtab/node_modules/@testing-library/react/dist/act-compat.js:46:25 at Object.eventWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:107:28) at Object.wrapEvent (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28) at Object.focusElement (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/event/focus.js:24:19) at Mouse.down (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:81:19) at PointerHost.press (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:37:24) at pointerAction (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:56:43) at Object.pointer (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:15) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7) at Object.type (/work/cashtab/node_modules/@testing-library/user-event/dist/cjs/utility/type.js:18:9) at Object.asyncWrapper (/work/cashtab/node_modules/@testing-library/react/dist/pure.js:88:22) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1110:9)
[13:01:04][CashTab Unit Tests] <SendXec /> If the user has minFeeSends set to true but no longer has the right token amount, the feature is disabled
[13:01:04][<SendXec /> If the user has minFeeSends set to true but no longer has the right token amount, the feature is disabled] Error: expect(element).toHaveValue(ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177) Expected the element to have value: ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177 Received: at Object.toHaveValue (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1204:32)
[13:01:04][CashTab Unit Tests] <SendXec /> We can send a tx with amount denominated in fiat currency
[13:01:04][<SendXec /> We can send a tx with amount denominated in fiat currency] TestingLibraryElementError: Unable to find an element by: [data-testid="currency-select-dropdown"] Ignored nodes: comments, script, style <body> <div /> </body> at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByTestId (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1318:20)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid.
[13:01:04][<SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid.] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:127:29)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid. Invalid bip21 string is ignored.
[13:01:04][<SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid. Invalid bip21 string is ignored.] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:164:29)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and value present as undefined
[13:01:04][<SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and value present as undefined] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and no value key present
[13:01:04][<SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and no value key present] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Params are ignored if only value param is present
[13:01:04][<SendXec /> rendered with params in URL Legacy params. Params are ignored if only value param is present] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Params are ignored if param is duplicated
[13:01:04][<SendXec /> rendered with params in URL Legacy params. Params are ignored if param is duplicated] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params are not parsed as bip21 even if the bip21 param appears in the string
[13:01:04][<SendXec /> rendered with params in URL Legacy params are not parsed as bip21 even if the bip21 param appears in the string] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:448:29)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL bip21 param - valid bip21 param with amount and op_return_raw is parsed as expected
[13:01:04][<SendXec /> rendered with params in URL bip21 param - valid bip21 param with amount and op_return_raw is parsed as expected] Error: Unable to find an element with the text: 9,513.12 XEC. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:513:29)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL bip21 param - an invalid bip21 param shows validation errors but cannot be changed
[13:01:04][<SendXec /> rendered with params in URL bip21 param - an invalid bip21 param shows validation errors but cannot be changed] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <SendXec /> rendered with params in URL No params. Send screen loads normally with no rendered input.
[13:01:04][<SendXec /> rendered with params in URL No params. Send screen loads normally with no rendered input.] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <SendToken /> Renders the SendToken screen with send address input
[13:01:04][<SendToken /> Renders the SendToken screen with send address input] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:136:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at processTicksAndRejections (node:internal/process/task_queues:95:5) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Accepts a valid ecash: prefixed address
[13:01:04][<SendToken /> Accepts a valid ecash: prefixed address] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:169:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Accepts a valid etoken: prefixed address
[13:01:04][<SendToken /> Accepts a valid etoken: prefixed address] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:200:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Accepts a valid alias
[13:01:04][<SendToken /> Accepts a valid alias] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:232:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Displays a validation error for an invalid address
[13:01:04][<SendToken /> Displays a validation error for an invalid address] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:292:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Displays a validation error for an alias without .xec suffix
[13:01:04][<SendToken /> Displays a validation error for an alias without .xec suffix] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:317:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Displays a validation error for valid alias that has not yet been registered
[13:01:04][<SendToken /> Displays a validation error for valid alias that has not yet been registered] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:344:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Displays expected error if alias server gives a bad response
[13:01:04][<SendToken /> Displays expected error if alias server gives a bad response] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:391:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Displays a validation error if the user includes any query string
[13:01:04][<SendToken /> Displays a validation error if the user includes any query string] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:431:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Renders the send token notification upon successful broadcast
[13:01:04][<SendToken /> Renders the send token notification upon successful broadcast] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:469:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][CashTab Unit Tests] <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
[13:01:04][<SendToken /> Renders the burn token success notification upon successful burn tx broadcast] Error: Unable to find an element with the text: BEAR. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at Object.<anonymous> (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:513:22) at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28) at new Promise (<anonymous>) at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10) at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40) at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9) at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9) at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3) at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16) at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34) at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
[13:01:04][Step 1/1] CashTab Unit Tests
[13:01:04][CashTab Unit Tests] <App /> Renders 404 on a bad route
[13:01:04][CashTab Unit Tests] <App /> Navigation menu routes to expected components
[13:01:04][<App /> Navigation menu routes to expected components] Error: Unable to find an element by: [data-testid="home-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:118:22)
[13:01:04][CashTab Unit Tests] <App /> Adding a contact to to a new contactList by clicking on tx history adds it to localforage and wallet context
[13:01:04][<App /> Adding a contact to to a new contactList by clicking on tx history adds it to localforage and wallet context] Error: Unable to find an element by: [data-testid="home-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:196:22)
[13:01:04][CashTab Unit Tests] <App /> Adding a contact to an existing contactList by clicking on tx history adds it to localforage and wallet context
[13:01:04][<App /> Adding a contact to an existing contactList by clicking on tx history adds it to localforage and wallet context] Error: Unable to find an element by: [data-testid="home-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:259:22)
[13:01:04][CashTab Unit Tests] <App /> A user with legacy blank contactList in localstorage is migrated on startup
[13:01:04][<App /> A user with legacy blank contactList in localstorage is migrated on startup] Error: Unable to find an element by: [data-testid="wallet-info-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:315:26)
[13:01:04][CashTab Unit Tests] <App /> Clicking "reply" on a Cashtab Msg correctly populates the SendXec to address and amount fields
[13:01:04][<App /> Clicking "reply" on a Cashtab Msg correctly populates the SendXec to address and amount fields] Error: Unable to find an element by: [data-testid="wallet-info-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:335:26)
[13:01:04][CashTab Unit Tests] <App /> We do not see the camera auto-open setting in the config screen on a desktop device
[13:01:04][<App /> We do not see the camera auto-open setting in the config screen on a desktop device] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <App /> We do see the camera auto-open setting in the config screen on a mobile device
[13:01:04][<App /> We do see the camera auto-open setting in the config screen on a mobile device] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <App /> Setting "Send Confirmations" settings will show send confirmations
[13:01:04][<App /> Setting "Send Confirmations" settings will show send confirmations] Error: Unable to find an element by: [data-testid="home-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:440:22)
[13:01:04][CashTab Unit Tests] <App /> If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values
[13:01:04][<App /> If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <App /> Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min
[13:01:04][<App /> Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min] Error: Unable to find an element by: [data-testid="home-ctn"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:585:22)
[13:01:04][CashTab Unit Tests] <App /> Wallet with easter egg token sees easter egg
[13:01:04][<App /> Wallet with easter egg token sees easter egg] Error: Unable to find an element with the alt text: tabcash Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByAltText (/work/cashtab/src/components/__tests__/App.test.js:719:29)
[13:01:04][CashTab Unit Tests] <App /> If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 1.6.* cashtabCache
[13:01:04][<App /> If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 1.6.* cashtabCache] TypeError: scripts is not iterable at scripts (/work/cashtab/src/hooks/useWallet.js:475:30) at updateWebsocket (/work/cashtab/src/hooks/useWallet.js:795:9) at commitHookEffectListMount (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:23150:26) at commitPassiveMountOnFiber (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24931:11) at commitPassiveMountEffects_complete (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24891:9) at commitPassiveMountEffects_begin (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24878:7) at commitPassiveMountEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:24866:3) at flushPassiveEffectsImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:27039:3) at flushPassiveEffects (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26984:14) at performSyncWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26076:3) at flushSyncCallbacks (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:12042:22) at commitRootImpl (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26959:3) at commitRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:26682:5) at finishConcurrentRender (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25981:9) at performConcurrentWorkOnRoot (/work/cashtab/node_modules/react-dom/cjs/react-dom.development.js:25809:7) at workLoop (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:266:34) at flushWork (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:239:14) at performWorkUntilDeadline (/work/cashtab/node_modules/scheduler/cjs/scheduler.development.js:533:21) at Timeout.task [as _onTimeout] (/work/cashtab/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19) at listOnTimeout (node:internal/timers:573:17) at processTimers (node:internal/timers:514:7)
[13:01:04][CashTab Unit Tests] <App /> A new user can import a mnemonic
[13:01:04][CashTab Unit Tests] <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[13:01:04][<App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup] Error: Unable to find an element by: [data-testid="balance-xec"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:861:29)
[13:01:04][CashTab Unit Tests] <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape
[13:01:04][<App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape] Error: Unable to find an element by: [data-testid="balance-xec"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:892:29)
[13:01:04][CashTab Unit Tests] <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated
[13:01:04][<App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated] Error: Unable to find an element by: [data-testid="balance-xec"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:923:29)
[13:01:04][CashTab Unit Tests] <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets in savedWallets has them migrated
[13:01:04][<App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets in savedWallets has them migrated] Error: Unable to find an element by: [data-testid="balance-xec"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:958:29)
[13:01:04][CashTab Unit Tests] <App /> Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[13:01:04][<App /> Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup] Error: Unable to find an element by: [data-testid="balance-xec"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:981:29)
[13:01:04][CashTab Unit Tests] <App /> A user with all valid wallets in savedWallets does not have any savedWallets migrated
[13:01:04][<App /> A user with all valid wallets in savedWallets does not have any savedWallets migrated] Error: Unable to find an element by: [data-testid="balance-xec"] Ignored nodes: comments, script, style <body> <div /> </body> at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/__tests__/App.test.js:1001:29)
[13:01:04][Creating archive artifacts.tar.gz] Archive was created, file size 316.66 KB (324262 bytes)
[13:02:06][Publishing artifacts] Publishing 1 file using [ArtifactsCachePublisher]: results/artifacts => artifacts.tar.gz
[13:02:06][Publishing artifacts] Publishing 1 file using [WebPublisher]: results/artifacts => artifacts.tar.gz
[13:01:03][Step 1/1] ##teamcity[publishArtifacts '+:results/artifacts=>artifacts.tar.gz']
[13:02:09][Step 1/1] Build cashtab-tests failed with exit code 1
[13:01:03][Step 1/1] ##teamcity[buildProblem timestamp='2024-03-14T13:01:03.947' description='Build cashtab-tests failed with exit code 1']
[13:01:04][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:04][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:04][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:04][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:04][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:04][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:04][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:04][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:04][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] ● <App /> › Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] Unable to find an element by: [data-testid="balance-xec"]
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] Ignored nodes: comments, script, style
[13:01:04][Step 1/1] <body>
[13:01:04][Step 1/1] <div />
[13:01:04][Step 1/1] </body>
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] 979 |
[13:01:04][Step 1/1] 980 | // Wait balance to be rendered correctly so we know Cashtab has loaded the wallet
[13:01:04][Step 1/1] > 981 | expect(await screen.findByTestId('balance-xec')).toHaveTextContent(
[13:01:04][Step 1/1] | ^
[13:01:04][Step 1/1] 982 | '9,513.12 XEC',
[13:01:04][Step 1/1] 983 | );
[13:01:04][Step 1/1] 984 |
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:04][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:04][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:981:29)
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] ● <App /> › A user with all valid wallets in savedWallets does not have any savedWallets migrated
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] TypeError: scripts is not iterable
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] 473 | // Can lead to off-by-one and other errors
[13:01:04][Step 1/1] 474 | const subscribedPayloads = [];
[13:01:04][Step 1/1] > 475 | for (const script of scripts) {
[13:01:04][Step 1/1] | ^
[13:01:04][Step 1/1] 476 | subscribedPayloads.push(script.payload);
[13:01:04][Step 1/1] 477 | }
[13:01:04][Step 1/1] 478 | console.log(`subscribedPayloads`, subscribedPayloads);
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] at scripts (src/hooks/useWallet.js:475:30)
[13:01:04][Step 1/1] at updateWebsocket (src/hooks/useWallet.js:795:9)
[13:01:04][Step 1/1] at commitHookEffectListMount (node_modules/react-dom/cjs/react-dom.development.js:23150:26)
[13:01:04][Step 1/1] at commitPassiveMountOnFiber (node_modules/react-dom/cjs/react-dom.development.js:24931:11)
[13:01:04][Step 1/1] at commitPassiveMountEffects_complete (node_modules/react-dom/cjs/react-dom.development.js:24891:9)
[13:01:04][Step 1/1] at commitPassiveMountEffects_begin (node_modules/react-dom/cjs/react-dom.development.js:24878:7)
[13:01:04][Step 1/1] at commitPassiveMountEffects (node_modules/react-dom/cjs/react-dom.development.js:24866:3)
[13:01:04][Step 1/1] at flushPassiveEffectsImpl (node_modules/react-dom/cjs/react-dom.development.js:27039:3)
[13:01:04][Step 1/1] at flushPassiveEffects (node_modules/react-dom/cjs/react-dom.development.js:26984:14)
[13:01:04][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26076:3)
[13:01:04][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[13:01:04][Step 1/1] at commitRootImpl (node_modules/react-dom/cjs/react-dom.development.js:26959:3)
[13:01:04][Step 1/1] at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:26682:5)
[13:01:04][Step 1/1] at finishConcurrentRender (node_modules/react-dom/cjs/react-dom.development.js:25981:9)
[13:01:04][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25809:7)
[13:01:04][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[13:01:04][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[13:01:04][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[13:01:04][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] ● <App /> › A user with all valid wallets in savedWallets does not have any savedWallets migrated
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] Unable to find an element by: [data-testid="balance-xec"]
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] Ignored nodes: comments, script, style
[13:01:04][Step 1/1] <body>
[13:01:04][Step 1/1] <div />
[13:01:04][Step 1/1] </body>
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] 999 |
[13:01:04][Step 1/1] 1000 | // Wait balance to be rendered correctly so we know Cashtab has loaded the wallet
[13:01:04][Step 1/1] > 1001 | expect(await screen.findByTestId('balance-xec')).toHaveTextContent(
[13:01:04][Step 1/1] | ^
[13:01:04][Step 1/1] 1002 | '9,513.12 XEC',
[13:01:04][Step 1/1] 1003 | );
[13:01:04][Step 1/1] 1004 |
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[13:01:04][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[13:01:04][Step 1/1] at Object.findByTestId (src/components/__tests__/App.test.js:1001:29)
[13:01:04][Step 1/1]
[13:01:04][Step 1/1]
[13:01:04][Step 1/1] Test Suites: 13 failed, 15 passed, 28 total
[13:01:04][Step 1/1] Tests: 90 failed, 487 passed, 577 total
[13:01:04][Step 1/1] Snapshots: 0 total
[13:01:04][Step 1/1] Time: 32.176 s
[13:01:04][Step 1/1] Ran all test suites.
[13:01:04][Step 1/1] Build cashtab-tests failed with exit code 1
[13:01:12][Step 1/1] Process exited with code 1
[13:02:09][Step 1/1] Process exited with code 1 (Step: Command Line)
[13:02:09][Step 1/1] Waiting for 1 service processes to complete
[13:02:09][Step 1/1] Ant JUnit report watcher
[13:02:09][Ant JUnit report watcher] 1 report found for paths:
[13:02:09][Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[13:02:09][Ant JUnit report watcher] Successfully parsed
[13:02:09][Successfully parsed] 1 report
[13:02:09][Successfully parsed] results/artifacts/junit/cashtab.xml
[13:02:09][Step 1/1] Step Command Line failed
[13:02:10]Ant JUnit report watcher
[13:02:10][Ant JUnit report watcher] No reports found for paths:
[13:02:10][Ant JUnit report watcher] +:results/test_bitcoin.xml
[13:02:10][Ant JUnit report watcher] +:results/**/junit_results*.xml
[13:02:10][Ant JUnit report watcher] +:results/**/*junit.xml
[13:02:10]Publishing internal artifacts (5s)
[13:02:14][Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[13:02:14][Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[13:02:10]Publishing artifacts (5s)
[13:02:10][Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml, +:bitcoin-abc/abc-ci-builds/cashtab-tests/gitian-results => cashtab-tests.tar.gz, +:bitcoin-abc/abc-ci-builds/cashtab-tests/*.log => artifacts.tar.gz]
[13:02:10][Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[13:02:10][Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/cashtab-tests/gitian-results' not found
[13:02:10][Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/cashtab-tests/*.log' not found
[13:02:16]Build finished
×

×

Pin build

Cancel
×

Add build comment

Cancel
×

Promote Build

×

Add build comment

Cancel
×

Mute test

×

×

Server communication failure

Server is unavailable

Server stopped or communication with the server is not possible due to network failure.

Server shutdown started.

Please relogin to continue your work.

×

Run Custom Build

×

TODO

Loading related builds...
Cancel
×

Responsibility

×

Edit tags

Cancel
×

Loading...

×

Are you sure?

Cancel
×

Cancel