Loading...
Guest user 

First recorded build

 
All history
 

Last recorded build

[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLInputElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLInputElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLInputElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at commitInput (node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14)
[00:04:37][Step 1/1] at editInputElement (node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9)
[00:04:37][Step 1/1] at Object.input (node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at KeyboardHost.keydown (node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22)
[00:04:37][Step 1/1] at keyboardAction (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35)
[00:04:37][Step 1/1] at Object.keyboard (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15)
[00:04:37][Step 1/1] at Object.type (node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:861:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [antd: Input.Group] `Input.Group` is deprecated. Please use `Space.Compact` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 859 | const addressInput =
[00:04:37][Step 1/1] 860 | 'ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177';
[00:04:37][Step 1/1] > 861 | await userEvent.type(addressInputEl, addressInput);
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 862 |
[00:04:37][Step 1/1] 863 | // The 'Send To' input field has this address as a value
[00:04:37][Step 1/1] 864 | expect(addressInputEl).toHaveValue(addressInput);
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at warning (node_modules/antd/lib/_util/warning.js:23:26)
[00:04:37][Step 1/1] at typeWarning (node_modules/antd/lib/_util/warning.js:57:49)
[00:04:37][Step 1/1] at Function.typeWarning.deprecated (node_modules/antd/lib/_util/warning.js:62:5)
[00:04:37][Step 1/1] at Group (node_modules/antd/lib/input/Group.js:42:13)
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateFunctionComponent (node_modules/react-dom/cjs/react-dom.development.js:19588:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21601:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26085:20)
[00:04:37][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[00:04:37][Step 1/1] at flushSync (node_modules/react-dom/cjs/react-dom.development.js:26201:7)
[00:04:37][Step 1/1] at finishEventHandler (node_modules/react-dom/cjs/react-dom.development.js:3976:5)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3994:5)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLInputElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLInputElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLInputElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at commitInput (node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14)
[00:04:37][Step 1/1] at editInputElement (node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9)
[00:04:37][Step 1/1] at Object.input (node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at KeyboardHost.keydown (node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22)
[00:04:37][Step 1/1] at keyboardAction (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35)
[00:04:37][Step 1/1] at Object.keyboard (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15)
[00:04:37][Step 1/1] at Object.type (node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:861:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [antd: Input.Group] `Input.Group` is deprecated. Please use `Space.Compact` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 859 | const addressInput =
[00:04:37][Step 1/1] 860 | 'ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177';
[00:04:37][Step 1/1] > 861 | await userEvent.type(addressInputEl, addressInput);
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 862 |
[00:04:37][Step 1/1] 863 | // The 'Send To' input field has this address as a value
[00:04:37][Step 1/1] 864 | expect(addressInputEl).toHaveValue(addressInput);
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at warning (node_modules/antd/lib/_util/warning.js:23:26)
[00:04:37][Step 1/1] at typeWarning (node_modules/antd/lib/_util/warning.js:57:49)
[00:04:37][Step 1/1] at Function.typeWarning.deprecated (node_modules/antd/lib/_util/warning.js:62:5)
[00:04:37][Step 1/1] at Group (node_modules/antd/lib/input/Group.js:42:13)
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateFunctionComponent (node_modules/react-dom/cjs/react-dom.development.js:19588:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21601:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26085:20)
[00:04:37][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[00:04:37][Step 1/1] at flushSync (node_modules/react-dom/cjs/react-dom.development.js:26201:7)
[00:04:37][Step 1/1] at finishEventHandler (node_modules/react-dom/cjs/react-dom.development.js:3976:5)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3994:5)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLInputElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLInputElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLInputElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at commitInput (node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14)
[00:04:37][Step 1/1] at editInputElement (node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9)
[00:04:37][Step 1/1] at Object.input (node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at KeyboardHost.keydown (node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22)
[00:04:37][Step 1/1] at keyboardAction (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35)
[00:04:37][Step 1/1] at Object.keyboard (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15)
[00:04:37][Step 1/1] at Object.type (node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:861:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [antd: Input.Group] `Input.Group` is deprecated. Please use `Space.Compact` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 859 | const addressInput =
[00:04:37][Step 1/1] 860 | 'ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177';
[00:04:37][Step 1/1] > 861 | await userEvent.type(addressInputEl, addressInput);
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 862 |
[00:04:37][Step 1/1] 863 | // The 'Send To' input field has this address as a value
[00:04:37][Step 1/1] 864 | expect(addressInputEl).toHaveValue(addressInput);
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at warning (node_modules/antd/lib/_util/warning.js:23:26)
[00:04:37][Step 1/1] at typeWarning (node_modules/antd/lib/_util/warning.js:57:49)
[00:04:37][Step 1/1] at Function.typeWarning.deprecated (node_modules/antd/lib/_util/warning.js:62:5)
[00:04:37][Step 1/1] at Group (node_modules/antd/lib/input/Group.js:42:13)
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateFunctionComponent (node_modules/react-dom/cjs/react-dom.development.js:19588:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21601:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26085:20)
[00:04:37][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[00:04:37][Step 1/1] at flushSync (node_modules/react-dom/cjs/react-dom.development.js:26201:7)
[00:04:37][Step 1/1] at finishEventHandler (node_modules/react-dom/cjs/react-dom.development.js:3976:5)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3994:5)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLInputElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLInputElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLInputElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at commitInput (node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14)
[00:04:37][Step 1/1] at editInputElement (node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9)
[00:04:37][Step 1/1] at Object.input (node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at KeyboardHost.keydown (node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22)
[00:04:37][Step 1/1] at keyboardAction (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35)
[00:04:37][Step 1/1] at Object.keyboard (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15)
[00:04:37][Step 1/1] at Object.type (node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:861:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [antd: Input.Group] `Input.Group` is deprecated. Please use `Space.Compact` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 859 | const addressInput =
[00:04:37][Step 1/1] 860 | 'ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=17&op_return_raw=04007461622263617368746162206D6573736167652077697468206F705F72657475726E5F726177';
[00:04:37][Step 1/1] > 861 | await userEvent.type(addressInputEl, addressInput);
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 862 |
[00:04:37][Step 1/1] 863 | // The 'Send To' input field has this address as a value
[00:04:37][Step 1/1] 864 | expect(addressInputEl).toHaveValue(addressInput);
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at warning (node_modules/antd/lib/_util/warning.js:23:26)
[00:04:37][Step 1/1] at typeWarning (node_modules/antd/lib/_util/warning.js:57:49)
[00:04:37][Step 1/1] at Function.typeWarning.deprecated (node_modules/antd/lib/_util/warning.js:62:5)
[00:04:37][Step 1/1] at Group (node_modules/antd/lib/input/Group.js:42:13)
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateFunctionComponent (node_modules/react-dom/cjs/react-dom.development.js:19588:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21601:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26085:20)
[00:04:37][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[00:04:37][Step 1/1] at flushSync (node_modules/react-dom/cjs/react-dom.development.js:26201:7)
[00:04:37][Step 1/1] at finishEventHandler (node_modules/react-dom/cjs/react-dom.development.js:3976:5)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3994:5)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLInputElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLInputElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLInputElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at commitInput (node_modules/@testing-library/user-event/dist/cjs/event/input.js:150:14)
[00:04:37][Step 1/1] at editInputElement (node_modules/@testing-library/user-event/dist/cjs/event/input.js:120:9)
[00:04:37][Step 1/1] at Object.input (node_modules/@testing-library/user-event/dist/cjs/event/input.js:42:9)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/behavior/keypress.js:36:26
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:41:13)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at KeyboardHost.keydown (node_modules/@testing-library/user-event/dist/cjs/system/keyboard.js:86:22)
[00:04:37][Step 1/1] at keyboardAction (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:28:35)
[00:04:37][Step 1/1] at Object.keyboard (node_modules/@testing-library/user-event/dist/cjs/keyboard/index.js:17:15)
[00:04:37][Step 1/1] at Object.type (node_modules/@testing-library/user-event/dist/cjs/utility/type.js:23:5)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:861:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.warn
[00:04:37][Step 1/1] [react-ga] ReactGA.initialize must be called first or GoogleAnalytics should be loaded manually
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 34 | ? // If you are not building the extension, export GA event tracking function
[00:04:37][Step 1/1] 35 | (category, action, label) => {
[00:04:37][Step 1/1] > 36 | ReactGA.event({
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 37 | category: category,
[00:04:37][Step 1/1] 38 | action: action,
[00:04:37][Step 1/1] 39 | label: label,
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warn (node_modules/react-ga/dist/react-ga.js:110:11)
[00:04:37][Step 1/1] at internalGa (node_modules/react-ga/dist/react-ga.js:211:47)
[00:04:37][Step 1/1] at _gaCommand (node_modules/react-ga/dist/react-ga.js:232:81)
[00:04:37][Step 1/1] at send (node_modules/react-ga/dist/react-ga.js:367:3)
[00:04:37][Step 1/1] at Object.event (node_modules/react-ga/dist/react-ga.js:577:5)
[00:04:37][Step 1/1] at event (src/utils/GoogleAnalytics.js:36:23)
[00:04:37][Step 1/1] at send (src/components/Send/SendXec.js:492:18)
[00:04:37][Step 1/1] at send (src/components/Send/SendXec.js:234:13)
[00:04:37][Step 1/1] at checkForConfirmationBeforeSendXec (src/components/Send/SendXec.js:1019:45)
[00:04:37][Step 1/1] at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:4164:14)
[00:04:37][Step 1/1] at HTMLUnknownElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:4213:16)
[00:04:37][Step 1/1] at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:4277:31)
[00:04:37][Step 1/1] at invokeGuardedCallbackAndCatchFirstError (node_modules/react-dom/cjs/react-dom.development.js:4291:25)
[00:04:37][Step 1/1] at executeDispatch (node_modules/react-dom/cjs/react-dom.development.js:9041:3)
[00:04:37][Step 1/1] at processDispatchQueueItemsInOrder (node_modules/react-dom/cjs/react-dom.development.js:9073:7)
[00:04:37][Step 1/1] at processDispatchQueue (node_modules/react-dom/cjs/react-dom.development.js:9086:5)
[00:04:37][Step 1/1] at dispatchEventsForPlugins (node_modules/react-dom/cjs/react-dom.development.js:9097:3)
[00:04:37][Step 1/1] at node_modules/react-dom/cjs/react-dom.development.js:9288:12
[00:04:37][Step 1/1] at batchedUpdates$1 (node_modules/react-dom/cjs/react-dom.development.js:26140:12)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3991:12)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLButtonElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLButtonElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLButtonElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at Mouse.up (node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:100:30)
[00:04:37][Step 1/1] at PointerHost.release (node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:84:28)
[00:04:37][Step 1/1] at pointerAction (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:59:47)
[00:04:37][Step 1/1] at Object.pointer (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:9)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:907:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.log
[00:04:37][Step 1/1] true
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at log (src/components/Send/SendXec.js:1102:17)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.warn
[00:04:37][Step 1/1] Deprecation Warning: TransactionBuilder will be removed in the future. (v6.x.x or later) Please use the Psbt class instead. Examples of usage are available in the transactions-psbt.js integration test file on our Github. A high level explanation is available in the psbt.ts and psbt.js files as well.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 80 |
[00:04:37][Step 1/1] 81 | // Initialize TransactionBuilder
[00:04:37][Step 1/1] > 82 | let txBuilder = utxolib.bitgo.createTransactionBuilderForNetwork(
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 83 | utxolib.networks.ecash,
[00:04:37][Step 1/1] 84 | );
[00:04:37][Step 1/1] 85 |
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at new TransactionBuilder (node_modules/@bitgo/utxo-lib/src/transaction_builder.ts:172:13)
[00:04:37][Step 1/1] at new UtxoTransactionBuilder (node_modules/@bitgo/utxo-lib/src/bitgo/UtxoTransactionBuilder.ts:24:5)
[00:04:37][Step 1/1] at Object.createTransactionBuilderForNetwork (node_modules/@bitgo/utxo-lib/src/bitgo/transaction.ts:257:13)
[00:04:37][Step 1/1] at createTransactionBuilderForNetwork (src/transactions/index.js:82:35)
[00:04:37][Step 1/1] at send (src/components/Send/SendXec.js:499:40)
[00:04:37][Step 1/1] at send (src/components/Send/SendXec.js:234:13)
[00:04:37][Step 1/1] at checkForConfirmationBeforeSendXec (src/components/Send/SendXec.js:1019:45)
[00:04:37][Step 1/1] at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:4164:14)
[00:04:37][Step 1/1] at HTMLUnknownElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:4213:16)
[00:04:37][Step 1/1] at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:4277:31)
[00:04:37][Step 1/1] at invokeGuardedCallbackAndCatchFirstError (node_modules/react-dom/cjs/react-dom.development.js:4291:25)
[00:04:37][Step 1/1] at executeDispatch (node_modules/react-dom/cjs/react-dom.development.js:9041:3)
[00:04:37][Step 1/1] at processDispatchQueueItemsInOrder (node_modules/react-dom/cjs/react-dom.development.js:9073:7)
[00:04:37][Step 1/1] at processDispatchQueue (node_modules/react-dom/cjs/react-dom.development.js:9086:5)
[00:04:37][Step 1/1] at dispatchEventsForPlugins (node_modules/react-dom/cjs/react-dom.development.js:9097:3)
[00:04:37][Step 1/1] at node_modules/react-dom/cjs/react-dom.development.js:9288:12
[00:04:37][Step 1/1] at batchedUpdates$1 (node_modules/react-dom/cjs/react-dom.development.js:26140:12)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3991:12)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLButtonElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLButtonElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLButtonElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at Mouse.up (node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:100:30)
[00:04:37][Step 1/1] at PointerHost.release (node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:84:28)
[00:04:37][Step 1/1] at pointerAction (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:59:47)
[00:04:37][Step 1/1] at Object.pointer (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:9)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:907:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.warn
[00:04:37][Step 1/1] DEPRECATED: TransactionBuilder sign method arguments will change in v6, please use the TxbSignArg interface
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 34 |
[00:04:37][Step 1/1] 35 | // Sign this input
[00:04:37][Step 1/1] > 36 | txBuilder.sign(
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 37 | index, // vin
[00:04:37][Step 1/1] 38 | utxoECPair, // keyPair
[00:04:37][Step 1/1] 39 | undefined, // redeemScript
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at getSigningData (node_modules/@bitgo/utxo-lib/src/transaction_builder.ts:1299:13)
[00:04:37][Step 1/1] at UtxoTransactionBuilder.sign (node_modules/@bitgo/utxo-lib/src/transaction_builder.ts:278:7)
[00:04:37][Step 1/1] at UtxoTransactionBuilder.sign (node_modules/@bitgo/utxo-lib/src/bitgo/UtxoTransactionBuilder.ts:94:20)
[00:04:37][Step 1/1] at sign (src/transactions/index.js:36:19)
[00:04:37][Step 1/1] at Array.forEach (<anonymous>)
[00:04:37][Step 1/1] at forEach (src/transactions/index.js:19:12)
[00:04:37][Step 1/1] at signInputs (src/transactions/index.js:109:5)
[00:04:37][Step 1/1] at send (src/components/Send/SendXec.js:499:40)
[00:04:37][Step 1/1] at send (src/components/Send/SendXec.js:234:13)
[00:04:37][Step 1/1] at checkForConfirmationBeforeSendXec (src/components/Send/SendXec.js:1019:45)
[00:04:37][Step 1/1] at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:4164:14)
[00:04:37][Step 1/1] at HTMLUnknownElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:4213:16)
[00:04:37][Step 1/1] at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:4277:31)
[00:04:37][Step 1/1] at invokeGuardedCallbackAndCatchFirstError (node_modules/react-dom/cjs/react-dom.development.js:4291:25)
[00:04:37][Step 1/1] at executeDispatch (node_modules/react-dom/cjs/react-dom.development.js:9041:3)
[00:04:37][Step 1/1] at processDispatchQueueItemsInOrder (node_modules/react-dom/cjs/react-dom.development.js:9073:7)
[00:04:37][Step 1/1] at processDispatchQueue (node_modules/react-dom/cjs/react-dom.development.js:9086:5)
[00:04:37][Step 1/1] at dispatchEventsForPlugins (node_modules/react-dom/cjs/react-dom.development.js:9097:3)
[00:04:37][Step 1/1] at node_modules/react-dom/cjs/react-dom.development.js:9288:12
[00:04:37][Step 1/1] at batchedUpdates$1 (node_modules/react-dom/cjs/react-dom.development.js:26140:12)
[00:04:37][Step 1/1] at batchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:3991:12)
[00:04:37][Step 1/1] at dispatchEventForPluginEventSystem (node_modules/react-dom/cjs/react-dom.development.js:9287:3)
[00:04:37][Step 1/1] at dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay (node_modules/react-dom/cjs/react-dom.development.js:6465:5)
[00:04:37][Step 1/1] at dispatchEvent (node_modules/react-dom/cjs/react-dom.development.js:6457:5)
[00:04:37][Step 1/1] at dispatchDiscreteEvent (node_modules/react-dom/cjs/react-dom.development.js:6430:5)
[00:04:37][Step 1/1] at HTMLDivElement.callTheUserObjectsOperation (node_modules/jsdom/lib/jsdom/living/generated/EventListener.js:26:30)
[00:04:37][Step 1/1] at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:350:25)
[00:04:37][Step 1/1] at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:286:3)
[00:04:37][Step 1/1] at HTMLButtonElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:233:9)
[00:04:37][Step 1/1] at HTMLButtonElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:104:17)
[00:04:37][Step 1/1] at HTMLButtonElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:241:34)
[00:04:37][Step 1/1] at node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:43
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/pure.js:108:16
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:47:24
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2512:16)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at Mouse.up (node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:100:30)
[00:04:37][Step 1/1] at PointerHost.release (node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:84:28)
[00:04:37][Step 1/1] at pointerAction (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:59:47)
[00:04:37][Step 1/1] at Object.pointer (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:9)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:907:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [antd: Input.Group] `Input.Group` is deprecated. Please use `Space.Compact` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 905 |
[00:04:37][Step 1/1] 906 | // Click Send
[00:04:37][Step 1/1] > 907 | await userEvent.click(screen.getByTestId('send-it'), addressInput);
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 908 |
[00:04:37][Step 1/1] 909 | // Notification is rendered with expected txid?;
[00:04:37][Step 1/1] 910 | const txSuccessNotification = await screen.findByText(
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at warning (node_modules/antd/lib/_util/warning.js:23:26)
[00:04:37][Step 1/1] at typeWarning (node_modules/antd/lib/_util/warning.js:57:49)
[00:04:37][Step 1/1] at Function.typeWarning.deprecated (node_modules/antd/lib/_util/warning.js:62:5)
[00:04:37][Step 1/1] at Group (node_modules/antd/lib/input/Group.js:42:13)
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateFunctionComponent (node_modules/react-dom/cjs/react-dom.development.js:19588:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21601:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:26085:20)
[00:04:37][Step 1/1] at flushSyncCallbacks (node_modules/react-dom/cjs/react-dom.development.js:12042:22)
[00:04:37][Step 1/1] at flushActQueue (node_modules/react/cjs/react.development.js:2667:24)
[00:04:37][Step 1/1] at act (node_modules/react/cjs/react.development.js:2582:11)
[00:04:37][Step 1/1] at node_modules/@testing-library/react/dist/act-compat.js:46:25
[00:04:37][Step 1/1] at Object.eventWrapper (node_modules/@testing-library/react/dist/pure.js:107:28)
[00:04:37][Step 1/1] at Object.wrapEvent (node_modules/@testing-library/user-event/dist/cjs/event/wrapEvent.js:6:28)
[00:04:37][Step 1/1] at Object.dispatchEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:45:22)
[00:04:37][Step 1/1] at Object.dispatchUIEvent (node_modules/@testing-library/user-event/dist/cjs/event/dispatchEvent.js:22:26)
[00:04:37][Step 1/1] at Mouse.up (node_modules/@testing-library/user-event/dist/cjs/system/pointer/mouse.js:100:30)
[00:04:37][Step 1/1] at PointerHost.release (node_modules/@testing-library/user-event/dist/cjs/system/pointer/index.js:84:28)
[00:04:37][Step 1/1] at pointerAction (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:59:47)
[00:04:37][Step 1/1] at Object.pointer (node_modules/@testing-library/user-event/dist/cjs/pointer/index.js:32:9)
[00:04:37][Step 1/1] at Object.asyncWrapper (node_modules/@testing-library/react/dist/pure.js:88:22)
[00:04:37][Step 1/1] at Object.<anonymous> (src/components/Send/__tests__/SendXec.test.js:907:9)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [antd: Input.Group] `Input.Group` is deprecated. Please use `Space.Compact` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at warning (node_modules/antd/lib/_util/warning.js:23:26)
[00:04:37][Step 1/1] at typeWarning (node_modules/antd/lib/_util/warning.js:57:49)
[00:04:37][Step 1/1] at Function.typeWarning.deprecated (node_modules/antd/lib/_util/warning.js:62:5)
[00:04:37][Step 1/1] at Group (node_modules/antd/lib/input/Group.js:42:13)
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateFunctionComponent (node_modules/react-dom/cjs/react-dom.development.js:19588:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21601:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25738:74)
[00:04:37][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[00:04:37][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[00:04:37][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[00:04:37][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] console.error
[00:04:37][Step 1/1] Warning: [rc-collapse] `children` will be removed in next major version. Please use `items` instead.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at warning (node_modules/rc-util/lib/warning.js:32:15)
[00:04:37][Step 1/1] at call (node_modules/rc-util/lib/warning.js:52:5)
[00:04:37][Step 1/1] at warningOnce (node_modules/rc-util/lib/warning.js:57:3)
[00:04:37][Step 1/1] at node_modules/rc-collapse/lib/Collapse.js:72:24
[00:04:37][Step 1/1] at renderWithHooks (node_modules/react-dom/cjs/react-dom.development.js:16305:18)
[00:04:37][Step 1/1] at updateForwardRef (node_modules/react-dom/cjs/react-dom.development.js:19226:20)
[00:04:37][Step 1/1] at beginWork (node_modules/react-dom/cjs/react-dom.development.js:21636:16)
[00:04:37][Step 1/1] at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:27426:14)
[00:04:37][Step 1/1] at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26560:12)
[00:04:37][Step 1/1] at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
[00:04:37][Step 1/1] at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
[00:04:37][Step 1/1] at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25738:74)
[00:04:37][Step 1/1] at workLoop (node_modules/scheduler/cjs/scheduler.development.js:266:34)
[00:04:37][Step 1/1] at flushWork (node_modules/scheduler/cjs/scheduler.development.js:239:14)
[00:04:37][Step 1/1] at performWorkUntilDeadline (node_modules/scheduler/cjs/scheduler.development.js:533:21)
[00:04:37][Step 1/1] at Timeout.task [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] Summary of all failing tests
[00:04:37][Step 1/1] FAIL src/components/Home/__tests__/Home.test.js (6.075 s)
[00:04:37][Step 1/1] ● <Home /> › Renders Sideshift button if user loads with a new wallet
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] Unable to find role="button" and name `/Exchange to XEC via SideShift/`
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] Ignored nodes: comments, script, style
[00:04:37][Step 1/1] <body>
[00:04:37][Step 1/1] <div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] aria-busy="true"
[00:04:37][Step 1/1] aria-live="polite"
[00:04:37][Step 1/1] class="ant-spin ant-spin-spinning css-dev-only-do-not-override-1rqnfsa"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] aria-label="loading"
[00:04:37][Step 1/1] class="anticon anticon-loading anticon-spin cashLoadingIcon ant-spin-dot"
[00:04:37][Step 1/1] role="img"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] aria-hidden="true"
[00:04:37][Step 1/1] data-icon="loading"
[00:04:37][Step 1/1] fill="currentColor"
[00:04:37][Step 1/1] focusable="false"
[00:04:37][Step 1/1] height="1em"
[00:04:37][Step 1/1] viewBox="0 0 1024 1024"
[00:04:37][Step 1/1] width="1em"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <path
[00:04:37][Step 1/1] d="M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </svg>
[00:04:37][Step 1/1] </span>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="ant-spin-container ant-spin-blur"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-LKuAh jSXNAo"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-kZmsYB eHkWzo"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-RcBXQ gMCskf"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-hzNEM iiFjIO"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-iSDuPN ccpgHi"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <img
[00:04:37][Step 1/1] alt="cashtab"
[00:04:37][Step 1/1] class="sc-fZwumE bcurWd"
[00:04:37][Step 1/1] src="test-file-stub"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-elJkPf geNavj"
[00:04:37][Step 1/1] data-testid="wallet-info-ctn"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-dEoRIm iVOOxs"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-jtggT dNidya"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] Transaction Fixtures
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <a
[00:04:37][Step 1/1] href="/configure"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] class="sc-jTzLTM bTdWCF"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </a>
[00:04:37][Step 1/1] <div>
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] aria-checked="true"
[00:04:37][Step 1/1] class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
[00:04:37][Step 1/1] role="switch"
[00:04:37][Step 1/1] type="button"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="ant-switch-handle"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] class="ant-switch-inner"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] class="ant-switch-inner-checked"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] class="sc-cSHVUG bgwEHu"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </span>
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] class="ant-switch-inner-unchecked"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] class="sc-kAzzGY fUTkYj"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </span>
[00:04:37][Step 1/1] </span>
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-ebFjAB kxaSkj"
[00:04:37][Step 1/1] data-testid="balance-xec"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] 0.00
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] XEC
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-jKVCRD bKzIGa"
[00:04:37][Step 1/1] data-testid="balance-fiat"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] $
[00:04:37][Step 1/1] 0.00
[00:04:37][Step 1/1]  
[00:04:37][Step 1/1] USD
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <p
[00:04:37][Step 1/1] class="sc-kaNhvL kDOvrh"
[00:04:37][Step 1/1] data-testid="ecash-price"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] 1
[00:04:37][Step 1/1] XEC
[00:04:37][Step 1/1] =
[00:04:37][Step 1/1] 0.00003000
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] USD
[00:04:37][Step 1/1] </p>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-jwKygS hNrbtP"
[00:04:37][Step 1/1] data-testid="loading-ctn"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-iBEsjs jmPiFQ"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-gmeYpB dpikyJ"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg />
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-gmeYpB eQwTbZ"
[00:04:37][Step 1/1] data-testid="nav-btn-send"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] class="sc-kEYyzF dWIuoY"
[00:04:37][Step 1/1] style="margin-top: -9px;"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-gmeYpB eQwTbZ"
[00:04:37][Step 1/1] data-testid="nav-btn-etokens"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] aria-label="appstore-add"
[00:04:37][Step 1/1] class="anticon anticon-appstore-add"
[00:04:37][Step 1/1] role="img"
[00:04:37][Step 1/1] style="font-size: 24px;"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] aria-hidden="true"
[00:04:37][Step 1/1] data-icon="appstore-add"
[00:04:37][Step 1/1] fill="currentColor"
[00:04:37][Step 1/1] focusable="false"
[00:04:37][Step 1/1] height="1em"
[00:04:37][Step 1/1] viewBox="64 64 896 896"
[00:04:37][Step 1/1] width="1em"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <defs />
[00:04:37][Step 1/1] <path
[00:04:37][Step 1/1] d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </svg>
[00:04:37][Step 1/1] </span>
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-gmeYpB eQwTbZ"
[00:04:37][Step 1/1] data-testid="nav-btn-receive"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg />
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-chbbiW ktwTIv"
[00:04:37][Step 1/1] data-testid="hamburger"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] class="sc-kxynE bbUulF"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] <div
[00:04:37][Step 1/1] class="sc-cooIXK gkGTON"
[00:04:37][Step 1/1] data-testid="hamburger-menu"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-fcdeBU RXlWo"
[00:04:37][Step 1/1] data-testid="nav-btn-airdrop"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] <p>
[00:04:37][Step 1/1] Airdrop
[00:04:37][Step 1/1] </p>
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] height="33px"
[00:04:37][Step 1/1] width="30px"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-fcdeBU RXlWo"
[00:04:37][Step 1/1] data-testid="nav-btn-swap"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] <p>
[00:04:37][Step 1/1] Swap
[00:04:37][Step 1/1] </p>
[00:04:37][Step 1/1] <span
[00:04:37][Step 1/1] aria-label="swap"
[00:04:37][Step 1/1] class="anticon anticon-swap"
[00:04:37][Step 1/1] role="img"
[00:04:37][Step 1/1] style="font-size: 24px;"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] aria-hidden="true"
[00:04:37][Step 1/1] data-icon="swap"
[00:04:37][Step 1/1] fill="currentColor"
[00:04:37][Step 1/1] focusable="false"
[00:04:37][Step 1/1] height="1em"
[00:04:37][Step 1/1] viewBox="64 64 896 896"
[00:04:37][Step 1/1] width="1em"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <path
[00:04:37][Step 1/1] d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"
[00:04:37][Step 1/1] ##teamcity[importData timestamp='2024-02-26T00:04:37.348' path='results/artifacts/junit/*.xml' type='junit']
[00:04:37][Step 1/1] Importing data from 'results/artifacts/junit/*.xml' (not existing file) with 'junit' processor
[00:04:37][Step 1/1] Publishing artifacts (48s)
[00:04:37][Publishing artifacts] Collecting files to publish: [+:results/artifacts=>artifacts.tar.gz]
[00:04:37][Publishing artifacts] Creating archive artifacts.tar.gz
[00:04:37][Creating archive artifacts.tar.gz] Creating /home/teamcity/buildAgent/temp/buildTmp/TarPreprocessor5486434906090400949/artifacts.tar.gz
[00:04:37][Step 1/1] Ant JUnit report watcher
[00:04:37][Ant JUnit report watcher] Watching paths:
[00:04:37][Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint for token with decimals
[00:04:37][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint for tokenId 50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e
[00:04:37][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Invalid document hash
[00:04:37][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Missing decimals
[00:04:37][CashTab Unit Tests] Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Non-string name
[00:04:37][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
[00:04:37][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
[00:04:37][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node and NNG: We return an empty array if no matches are found from a bad tokenId
[00:04:37][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
[00:04:37][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: NNG: We can get a single token utxo from an array including other token utxos and non-token utxos
[00:04:37][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: NNG: We can get a multiple token utxos from an array including other token utxos and non-token utxos, ignoring mint baton
[00:04:37][CashTab Unit Tests] Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: NNG: We return an empty array if we have no tokenUtxos for a given tokenId
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: Legacy unit test of deprecated function generateSendOpReturn
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: Legacy unit test of deprecated function generateSendOpReturn
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: Token send with change output
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: Token send with change output
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: We ignore un-needed utxos in a token send with change output
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: We ignore un-needed utxos in a token send with change output
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: Token send with change output and decimals
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: Token send with change output and decimals
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: Token send with no change output
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: Token send with no change output
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: We ignore un-needed utxos in a tx with no change
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: We ignore un-needed utxos in a tx with no change
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSendTokenInputs: Sending from a genesis tx with change
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpSendTargetOutputs with NNG inputs: Sending from a genesis tx with change
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpBurnTargetOutput throws error for: Token with decimals sending more than utxos
[00:04:37][CashTab Unit Tests] Get slpv1 send token inputs and outputs from NNG chronik-client getSlpBurnTargetOutput throws error for: Token with no decimals sending more than utxos
[00:04:37][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with change output
[00:04:37][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with change output
[00:04:37][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
[00:04:37][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with no change output
[00:04:37][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
[00:04:37][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
[00:04:37][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
[00:04:37][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
[00:04:37][CashTab Unit Tests] Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Invalid decimals
[00:04:37][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
[00:04:37][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
[00:04:37][CashTab Unit Tests] Generating etoken burn tx target outputs getSlpBurnTargetOutputs: Burn a fraction of balance
[00:04:37][CashTab Unit Tests] Generating etoken burn tx target outputs getSlpBurnTargetOutputs: Burn all balance
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from nng utxos getExplicitBurnTargetOutputs: Burn a single token utxo
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from nng utxos getExplicitBurnTargetOutputs: Burns multiple token utxos
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from nng utxos getExplicitBurnTargetOutputs: Burns max slp quantity
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from nng utxos getExplicitBurnTargetOutputs throws error for: Empty tokenUtxos
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from nng utxos getExplicitBurnTargetOutputs throws error for: Bad utxo format, not NNG or in-node
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burn a single token utxo
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burns multiple token utxos
[00:04:37][CashTab Unit Tests] Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burns max slp quantity for 9 decimals
[00:04:37][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
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Validation utils isValidSideshiftObj() returns true for a valid sideshift library object
[00:04:37][CashTab Unit Tests] Validation utils isValidSideshiftObj() returns false if the sideshift library object failed to instantiate
[00:04:37][CashTab Unit Tests] Validation utils isValidSideshiftObj() returns false for an invalid sideshift library object
[00:04:37][CashTab Unit Tests] Validation utils isValidRecipient() returns true for a valid and registered alias input
[00:04:37][CashTab Unit Tests] Validation utils isValidRecipient() returns false for a valid but unregistered alias input
[00:04:37][CashTab Unit Tests] Validation utils isValidRecipient() returns false for an invalid eCash address / alias input
[00:04:37][CashTab Unit Tests] Validation utils isValidRecipient() returns true for a valid eCash address
[00:04:37][CashTab Unit Tests] Validation utils isValidRecipient() returns true for a valid prefix-less eCash address
[00:04:37][CashTab Unit Tests] Validation utils validateMnemonic() returns true for a valid mnemonic
[00:04:37][CashTab Unit Tests] Validation utils validateMnemonic() returns false for an invalid mnemonic
[00:04:37][CashTab Unit Tests] Validation utils validateMnemonic() returns false for an empty string mnemonic
[00:04:37][CashTab Unit Tests] Validation utils Returns 'false' if XEC send amount is a valid send amount
[00:04:37][CashTab Unit Tests] Validation utils Returns 'false' if XEC send amount is a valid send amount in USD
[00:04:37][CashTab Unit Tests] Validation utils Returns not a number if XEC send amount is not a number
[00:04:37][CashTab Unit Tests] Validation utils Returns amount must be greater than 0 if XEC send amount is 0
[00:04:37][CashTab Unit Tests] Validation utils Returns amount must be greater than 0 if XEC send amount is less than 0
[00:04:37][CashTab Unit Tests] Validation utils Returns balance error if XEC send amount is greater than user balance
[00:04:37][CashTab Unit Tests] Validation utils Returns balance error if XEC send amount is greater than user balance
[00:04:37][CashTab Unit Tests] Validation utils Returns error if XEC send amount is less than 5.5 minimum
[00:04:37][CashTab Unit Tests] Validation utils Returns error if XEC send amount is less than 5.5 minimum in fiat currency
[00:04:37][CashTab Unit Tests] Validation utils Returns balance error if XEC send amount is greater than user balance with fiat currency selected
[00:04:37][CashTab Unit Tests] Validation utils Returns precision error if XEC send amount has more than 2 decimal places
[00:04:37][CashTab Unit Tests] Validation utils Returns expected crypto amount with 2 decimals of precision even if inputs have higher precision
[00:04:37][CashTab Unit Tests] Validation utils Returns expected crypto amount with 2 decimals of precision even if inputs have higher precision
[00:04:37][CashTab Unit Tests] Validation utils Returns expected crypto amount with 2 decimals of precision even if inputs have lower precision
[00:04:37][CashTab Unit Tests] Validation utils Accepts a valid eToken token name
[00:04:37][CashTab Unit Tests] Validation utils Accepts a valid eToken token name that is a stringified number
[00:04:37][CashTab Unit Tests] Validation utils Rejects eToken token name if longer than 68 characters
[00:04:37][CashTab Unit Tests] Validation utils Rejects eToken token name if empty string
[00:04:37][CashTab Unit Tests] Validation utils Accepts a 4-char eToken token ticker
[00:04:37][CashTab Unit Tests] Validation utils Accepts a 12-char eToken token ticker
[00:04:37][CashTab Unit Tests] Validation utils Rejects eToken token ticker if empty string
[00:04:37][CashTab Unit Tests] Validation utils Rejects eToken token ticker if > 12 chars
[00:04:37][CashTab Unit Tests] Validation utils Accepts tokenDecimals if zero
[00:04:37][CashTab Unit Tests] Validation utils Accepts tokenDecimals if between 0 and 9 inclusive
[00:04:37][CashTab Unit Tests] Validation utils Rejects tokenDecimals if empty string
[00:04:37][CashTab Unit Tests] Validation utils Rejects tokenDecimals if non-integer
[00:04:37][CashTab Unit Tests] Validation utils Accepts tokenDecimals initial genesis quantity at minimum amount for 3 decimal places
[00:04:37][CashTab Unit Tests] Validation utils Accepts initial genesis quantity at minimum amount for 9 decimal places
[00:04:37][CashTab Unit Tests] Validation utils Accepts initial genesis quantity at amount below 100 billion
[00:04:37][CashTab Unit Tests] Validation utils Accepts highest possible initial genesis quantity at amount below 100 billion
[00:04:37][CashTab Unit Tests] Validation utils Accepts initial genesis quantity if decimal places equal tokenDecimals
[00:04:37][CashTab Unit Tests] Validation utils Accepts initial genesis quantity if decimal places are less than tokenDecimals
[00:04:37][CashTab Unit Tests] Validation utils Rejects initial genesis quantity of zero
[00:04:37][CashTab Unit Tests] Validation utils Rejects initial genesis quantity if tokenDecimals is not valid
[00:04:37][CashTab Unit Tests] Validation utils Rejects initial genesis quantity if 100 billion or higher
[00:04:37][CashTab Unit Tests] Validation utils Rejects initial genesis quantity if it has more decimal places than tokenDecimals
[00:04:37][CashTab Unit Tests] Validation utils Accepts a valid eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Accepts a valid eToken token document URL including special URL characters
[00:04:37][CashTab Unit Tests] Validation utils Accepts a blank string as a valid eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Rejects eToken token name if longer than 68 characters
[00:04:37][CashTab Unit Tests] Validation utils Accepts a domain input with https protocol as eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Accepts a domain input with http protocol as eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Accepts a domain input with a primary and secondary top level domain as eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Accepts a domain input with just a subdomain as eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Rejects a domain input with no top level domain, protocol or subdomain eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Rejects a domain input as numbers eToken token document URL
[00:04:37][CashTab Unit Tests] Validation utils Recognizes the default cashtabCache object as valid
[00:04:37][CashTab Unit Tests] Validation utils Recognizes a valid cashtabCache object
[00:04:37][CashTab Unit Tests] Validation utils Rejects a cashtabCache object if one token id is invalid
[00:04:37][CashTab Unit Tests] Validation utils Rejects a cashtabCache object if decimals is not a number
[00:04:37][CashTab Unit Tests] Validation utils Rejects a cashtabCache object if tokenName is not a string
[00:04:37][CashTab Unit Tests] Validation utils Rejects a cashtabCache object if tokenName is missing
[00:04:37][CashTab Unit Tests] Validation utils Recognizes a valid cashtab settings object
[00:04:37][CashTab Unit Tests] Validation utils Rejects a cashtab settings object for an unsupported currency
[00:04:37][CashTab Unit Tests] Validation utils Rejects a corrupted cashtab settings object for an unsupported currency
[00:04:37][CashTab Unit Tests] Validation utils Rejects a valid fiatCurrency setting but undefined sendModal setting
[00:04:37][CashTab Unit Tests] Validation utils Rejects a valid fiatCurrency setting but invalid sendModal setting
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount accepts the dust minimum
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount accepts arbitrary number above dust minimum
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects zero
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount accepts a string with 1 decimal place
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount accepts a string with 2 decimal places
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects a string with more than 2 decimal places
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects a non-number string
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount accepts arbitrary number above dust minimum as a string
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects null
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects undefined
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects a value including non-numerical characters
[00:04:37][CashTab Unit Tests] Validation utils isValidXecSendAmount rejects a value including decimal marker that is not a period
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount rejects null
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount rejects undefined
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount rejects a burn amount that is 0
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount rejects a burn amount that is negative
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount rejects a burn amount that is more than the maxAmount param
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount accepts a valid burn amount
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount accepts a valid burn amount with decimal points
[00:04:37][CashTab Unit Tests] Validation utils isValidEtokenBurnAmount accepts a valid burn amount that is the same as the maxAmount
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId accepts valid token ID that is 64 chars in length
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects a token ID that is less than 64 chars in length
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects a token ID that is more than 64 chars in length
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects a token ID number that is 64 digits in length
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects null
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects undefined
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects empty string
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects special character input
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects non-alphanumeric input
[00:04:37][CashTab Unit Tests] Validation utils isValidXecAirdrop accepts valid Total Airdrop Amount
[00:04:37][CashTab Unit Tests] Validation utils isValidXecAirdrop rejects null
[00:04:37][CashTab Unit Tests] Validation utils isValidXecAirdrop rejects undefined
[00:04:37][CashTab Unit Tests] Validation utils isValidXecAirdrop rejects empty string
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects an alphanumeric input
[00:04:37][CashTab Unit Tests] Validation utils isValidTokenId rejects a number !> 0 in string format
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray accepts an airdrop list with valid XEC values
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray rejects an airdrop list with invalid XEC values
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray rejects null
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray rejects undefined
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray rejects empty string
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray rejects an airdrop list with multiple invalid XEC values per row
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropOutputsArray rejects an airdrop list with multiple valid XEC values per row
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropExclusionArray accepts a valid airdrop exclusion list
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropExclusionArray rejects an invalid airdrop exclusion list
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropExclusionArray rejects an empty airdrop exclusion list
[00:04:37][CashTab Unit Tests] Validation utils isValidAirdropExclusionArray rejects a null airdrop exclusion list
[00:04:37][CashTab Unit Tests] Validation utils parseInvalidCashtabCacheForMigration updates an invalid cashtabCache object and keeps existing valid cache params intact
[00:04:37][CashTab Unit Tests] Validation utils parseInvalidCashtabCacheForMigration sets cashtabCache object with no exsting valid cache to default values
[00:04:37][CashTab Unit Tests] Validation utils updates an invalid settings object and keeps existing valid settings intact
[00:04:37][CashTab Unit Tests] Validation utils sets settings object with no exsting valid settings to default values
[00:04:37][CashTab Unit Tests] Validation utils does nothing if valid settings object is present in localStorage
[00:04:37][CashTab Unit Tests] Validation utils accepts a valid wallet name
[00:04:37][CashTab Unit Tests] Validation utils rejects wallet name that is too long
[00:04:37][CashTab Unit Tests] Validation utils rejects blank string as new wallet name
[00:04:37][CashTab Unit Tests] Validation utils rejects wallet name of the wrong type
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes "bitcoin" is probably a scam token name
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes "ebitcoin" is probably a scam token name
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes "Lido Staked Ether", from coingeckoTop500Names, is probably a scam token name
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes 'matic-network', from coingeckoTop500Ids, is probably a scam token name
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes 'Australian Dollar', from Cashtab supported fiat currencies, is probably a scam token name
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes 'ebtc', from bannedTickers, is probably a scam token name
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes 'gbp', from bannedTickers, is probably a scam
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes 'Hong Kong Dollar', from fiatNames, is probably a scam
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes '₪', from fiat symbols, is probably a scam
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam recognizes an ordinary token name as acceptable
[00:04:37][CashTab Unit Tests] Validation utils isProbablyNotAScam accepts a token name with fragments of banned potential scam names
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput accepts correctly formed multisend output
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput accepts correctly formed multisend output even if address has extra spaces
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg for invalid address
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg for invalid value (dust)
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg for invalid value (too many decimals)
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg for a blank input
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg for extra spaces on a particular line
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error for non-string input
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg for input without only an address
[00:04:37][CashTab Unit Tests] Validation utils isValidMultiSendUserInput returns expected error msg if line has more than one comma
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects a string that starts with 6a
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects a string that starts with invalid pushdata
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects non-string input
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects non-hex input
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam supports a valid hex string under max length
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam supports a valid hex string under max length with mixed capitalization
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam supports a valid hex string of max length
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects a string with empty spaces
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects an empty string
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects a valid hex string exceeding max length
[00:04:37][CashTab Unit Tests] Validation utils isValidOpreturnParam rejects a valid hex string that has uneven length (i.e., half a byte)
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on startup
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled if address has been entered but no value
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled for valid address and value
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on zero balance
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid address
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid value
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid opreturn msg
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on priceApi error
[00:04:37][CashTab Unit Tests] Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled if isOneToManyXECSend and value is not entered
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Blank string
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Address only and no querystring
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: prefixless address input
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: alias only and no querystring
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: alias missing .xec suffix
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param, no decimals
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param, with decimals
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Invalid address with valid amount param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: etoken address with valid amount param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid address with invalid amount param (too many decimal places)
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid alias with valid amount param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Invalid alias with valid amount param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid op_return_raw param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid alias with valid op_return_raw param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid address with invalid op_return_raw param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Valid amount and op_return_raw params
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: invalid querystring (unsupported params)
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Invalid queryString, repeated param
[00:04:37][CashTab Unit Tests] Parses user input address strings with parseAddressInput parseAddressInput: Repeated op_return_raw param
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] 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
[00:04:37][CashTab Unit Tests] Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias send input
[00:04:37][CashTab Unit Tests] Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias missing prefix
[00:04:37][CashTab Unit Tests] Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias with double suffix
[00:04:37][CashTab Unit Tests] Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias with bad suffix
[00:04:37][CashTab Unit Tests] Validates user alias input on Send and SendToken screens isValidAliasSendInput: Invalid alias (too long)
[00:04:37][CashTab Unit Tests] Validates user alias input on Send and SendToken screens isValidAliasSendInput: Invalid alias (nonalphanumeric)
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: Legacy empty contact list
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: Empty contact list
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: Array of more than one empty object is invalid
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: List with one valid entry
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: Multiple valid entries
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: Valid objects but also an empty object is false
[00:04:37][CashTab Unit Tests] Validating Cashtab Contact Lists isValidContactList: Valid alias formats are accepted
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] generateSendOpReturn() returns correct script object for valid tokenUtxo and send quantity
[00:04:37][CashTab Unit Tests] generateSendOpReturnScript() throws error on invalid input
[00:04:37][CashTab Unit Tests] generateBurnOpReturn() returns correct script for valid tokenUtxo and burn quantity
[00:04:37][CashTab Unit Tests] generateBurnOpReturn() throws error on invalid input
[00:04:37][CashTab Unit Tests] generateGenesisOpReturn() returns correct script for a valid configObj
[00:04:37][CashTab Unit Tests] generateGenesisOpReturn() throws error on invalid configObj
[00:04:37][CashTab Unit Tests] signUtxosByAddress() successfully returns a txBuilder object for a one to one XEC tx
[00:04:37][CashTab Unit Tests] signUtxosByAddress() successfully returns a txBuilder object for a one to many XEC tx
[00:04:37][CashTab Unit Tests] sumOneToManyXec() correctly parses the value for a valid one to many send XEC transaction
[00:04:37][CashTab Unit Tests] sumOneToManyXec() correctly parses the value for a valid one to many send XEC transaction with decimals
[00:04:37][CashTab Unit Tests] sumOneToManyXec() returns NaN for an address and value array that is partially typed or has invalid format
[00:04:37][CashTab Unit Tests] generateAliasOpReturnScript() correctly generates OP_RETURN script for a valid alias registration for a p2pkh address
[00:04:37][CashTab Unit Tests] generateAliasOpReturnScript() correctly generates OP_RETURN script for a valid alias registration for a p2sh address
[00:04:37][CashTab Unit Tests] generateTokenTxInput() returns a valid object for a valid create token tx
[00:04:37][CashTab Unit Tests] generateTokenTxInput() returns a valid object for a valid send token tx
[00:04:37][CashTab Unit Tests] generateTokenTxInput() returns a valid object for a valid burn token tx
[00:04:37][CashTab Unit Tests] generateTokenTxOutput() returns a valid object for a valid create token tx
[00:04:37][CashTab Unit Tests] generateTokenTxOutput() returns a valid object for a valid send token tx
[00:04:37][CashTab Unit Tests] generateTokenTxOutput() returns a valid object for a valid burn token tx
[00:04:37][CashTab Unit Tests] generateTxInput() returns an input object for a valid one to one XEC tx
[00:04:37][CashTab Unit Tests] generateTxInput() returns an input object for a valid one to many XEC tx
[00:04:37][CashTab Unit Tests] generateTxInput() throws error for a one to many XEC tx with invalid destinationAddressAndValueArray input
[00:04:37][CashTab Unit Tests] generateTxInput() throws error for a one to many XEC tx with invalid utxos input
[00:04:37][CashTab Unit Tests] generateTxOutput() returns a txBuilder instance for a valid one to one XEC tx
[00:04:37][CashTab Unit Tests] generateTxOutput() returns a txBuilder instance for a valid one to many XEC tx
[00:04:37][CashTab Unit Tests] generateTxOutput() throws an error on invalid input params for a one to one XEC tx
[00:04:37][CashTab Unit Tests] generateTxOutput() throws an error on invalid input params for a one to many XEC tx
[00:04:37][CashTab Unit Tests] signAndBuildTx() successfully returns a raw tx hex for a tx with a single input and a single output
[00:04:37][CashTab Unit Tests] signAndBuildTx() successfully returns a raw tx hex for a tx with a single input and multiple outputs
[00:04:37][CashTab Unit Tests] signAndBuildTx() successfully returns a raw tx hex for a tx with multiple inputs and a single output
[00:04:37][CashTab Unit Tests] signAndBuildTx() successfully returns a raw tx hex for a tx with multiple inputs and multiple outputs
[00:04:37][CashTab Unit Tests] signAndBuildTx() throws error on an empty inputUtxo param
[00:04:37][CashTab Unit Tests] signAndBuildTx() throws error on a null inputUtxo param
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Correctly determines a wallet's balance from its set of non-eToken utxos (nonSlpUtxos)
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Correctly determines a wallet's zero balance from its empty set of non-eToken utxos (nonSlpUtxos)
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions A wallet with format from before the 20221123 migration is invalid
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a stored wallet as valid if it has all required fields in 20221123 updated format
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a stored wallet as invalid if it is missing required fields
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a stored wallet as invalid if it includes hydratedUtxoDetails in the state field
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a stored wallet as invalid if it's missing the Path1899 and mnemonic keys
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Converts a legacy BCH amount to an XEC amount
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Leaves a legacy BCH amount unchanged if appConfig.cashDecimals is 8
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertToEcashPrefix converts a bitcoincash: prefixed address to an ecash: prefixed address
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertToEcashPrefix returns an ecash: prefix address unchanged
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a wallet with missing Path1889 is a Legacy Wallet and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a wallet with missing PublicKey in Path1889 is a Legacy Wallet and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a wallet with missing PublicKey in Path145 is a Legacy Wallet and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a wallet with missing PublicKey in Path245 is a Legacy Wallet and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a wallet with missing Hash160 values is a Legacy Wallet and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a latest, current wallet that does not require migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a non-eCash prefixed Path245 address and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a non-eCash prefixed Path1899 address and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Recognizes a non-eCash prefixed Path145 address and requires migration
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr successfully converts a valid eToken address to eCash
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr successfully converts prefixless eToken address as input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with an invalid eToken address as input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with an ecash address as input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with null input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEtokenToEcashAddr throws error with empty string input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr successfully converts a valid ecash address into an etoken address
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr successfully converts a valid prefix-less ecash address into an etoken address
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr throws error with invalid ecash address input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr throws error with a valid etoken address input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenAddr throws error with a valid bitcoincash address input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions convertEcashtoEtokenPrefix throws error with null ecash address input
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions getHashArrayFromWallet returns false for a legacy wallet
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Successfully extracts a hash160 array from a migrated wallet object
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions isActiveWebsocket returns true for an active chronik websocket connection
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions isActiveWebsocket returns false for a disconnected chronik websocket connection
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions isActiveWebsocket returns false for a null chronik websocket connection
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions isActiveWebsocket returns false for an active websocket connection with no subscriptions
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions getCashtabByteCount for 2 inputs, 2 outputs returns the same value as BCH.BitcoinCash.getByteCount( { P2PKH: utxos.length }, { P2PKH: p2pkhOutputNumber }, );
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions getCashtabByteCount for 1 input, 2 outputs returns the same value as BCH.BitcoinCash.getByteCount( { P2PKH: utxos.length }, { P2PKH: p2pkhOutputNumber }, );
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions getCashtabByteCount for 173 input, 1 outputs returns the same value as BCH.BitcoinCash.getByteCount( { P2PKH: utxos.length }, { P2PKH: p2pkhOutputNumber }, );
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions getCashtabByteCount for 1 input, 2000 outputs returns the same value as BCH.BitcoinCash.getByteCount( { P2PKH: utxos.length }, { P2PKH: p2pkhOutputNumber }, );
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions calculates fee correctly for 2 P2PKH outputs
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions Converts a hash160 to an ecash address
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions outputScriptToAddress determines P2PKH address type from output script and returns the ecash address
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions outputScriptToAddress determines P2SH address type from output script and returns the ecash address
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions outputScriptToAddress throws correct error for an output script that does not parse as P2PKH or P2SH
[00:04:37][CashTab Unit Tests] Correctly executes cash utility functions outputScriptToAddress throws correct error for an output script that for some reason is bracketed by P2PKH markers but is not a valid hash160
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address
[00:04:37][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
[00:04:37][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
[00:04:37][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
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2sh address
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1000 satoshis with 1 change output at 10 sat/byte
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1 satoshi per byte tx with no change outputs
[00:04:37][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
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 1 satoshi per byte tx broadcast actually broadcast with this function
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: No precision error using JS Number on utxo with highest theoretically possible value
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 15000 satoshis with 1 change output at 1 sat/byte to 5 p2pkh addresses
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: 15000 satoshis with 1 change output at 1 sat/byte to 5 p2sh outputs
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Sending below dust threshold
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Sending above wallet balance
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Sending within wallet balance but insufficient to cover fee
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Attempting to create a tx with fee rate below 1 sat/byte
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Tx with utxos for which the wallet has no private keys
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: throws broadcast error from the node
[00:04:37][CashTab Unit Tests] Improved Cashtab transaction broadcasting function sendXec: Insufficient balance due to immature coinbase utxos
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Airdrop
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Multisend format with extra space around address and value
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: One address in multi format
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Multisend including a non-integer JS result
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Invalid multisend input (dust)
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Too many decimal places
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Use of comma as decimal place marker
[00:04:37][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Too many commas on one line
[00:04:37][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with no coinbase utxos returned unchanged
[00:04:37][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with immature coinbase utxo returned without immature coinbase utxo
[00:04:37][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with some immature coinbase utxos and some mature coinbase utxos returned without immature coinbase utxo
[00:04:37][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: If blockheight is zero, all coinbase utxos are removed
[00:04:37][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 tx and an SLP V1 BURN tx from NNG chronik-client utxos: SLP send and BURN with token change, NNG utxo shape
[00:04:37][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 tx and an SLP V1 BURN tx from NNG chronik-client utxos: SLP send and BURN with no token change, NNG utxo shape
[00:04:37][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 tx and an SLP V1 BURN tx from NNG chronik-client utxos: SLP max send and max burn txs using all available input utxos
[00:04:37][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
[00:04:37][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
[00:04:37][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
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] getTokenStats successfully returns a token stats object
[00:04:37][CashTab Unit Tests] organizeUtxosByType successfully splits a chronikUtxos array into slpUtxos and nonSlpUtxos
[00:04:37][CashTab Unit Tests] getPreliminaryTokensArray successfully returns an array of all tokenIds and token balances (not yet adjusted for token decimals)
[00:04:37][CashTab Unit Tests] finalizeTokensArray successfully returns finalTokenArray and cachedTokenInfoById even if no cachedTokenInfoById is provided
[00:04:37][CashTab Unit Tests] finalizeTokensArray successfully returns finalTokenArray and cachedTokenInfoById when called with all token info in cache
[00:04:37][CashTab Unit Tests] updateCachedTokenInfoAndFinalizeTokensArray successfully returns finalTokenArray and cachedTokenInfoById when called with some token info in cache
[00:04:37][CashTab Unit Tests] finalizeSlpUtxos successfully adds token quantity adjusted for token decimals to preliminarySlpUtxos
[00:04:37][CashTab Unit Tests] flattenChronikTxHistory successfully combines the result of getTxHistoryChronik into a single array
[00:04:37][CashTab Unit Tests] sortAndTrimChronikTxHistory successfully orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if all txs are confirmed, and returns a result of expected length
[00:04:37][CashTab Unit Tests] sortAndTrimChronikTxHistory successfully orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if some txs are confirmed and others unconfirmed, and returns a result of expected length
[00:04:37][CashTab Unit Tests] sortAndTrimChronikTxHistory successfully orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if all txs are unconfirmed, and returns a result of expected length
[00:04:37][CashTab Unit Tests] getMintAddress successfully parses chronik.tx response to determine mint address for TabCash token
[00:04:37][CashTab Unit Tests] getMintAddress successfully parses chronik.tx response to determine mint address for PoW token
[00:04:37][CashTab Unit Tests] getMintAddress successfully parses chronik.tx response to determine mint address for Alita token
[00:04:37][CashTab Unit Tests] getMintAddress successfully parses chronik.tx response to determine mint address for a BUX self minted token
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Staking rewards coinbase tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Incoming XEC tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Outgoing XEC tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Alias registration
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Incoming eToken
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Outgoing eToken
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Genesis tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Incoming eToken tx with 9 decimals
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Legacy airdrop tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Outgoing encrypted msg (deprecated)
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Incoming encrypted msg (deprecated)
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Token burn tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Token burn tx with decimals
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Incoming eToken tx less than zero with decimals
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: SWaP tx
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Pre-spec alias registration (now off spec)
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: PayButton tx with no data and payment id
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: PayButton tx with data and payment id
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: PayButton tx with no data and no payment id
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: PayButton tx with data and no payment id
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: PayButton tx with unsupported version number
[00:04:37][CashTab Unit Tests] Parses supported tx types parseChronikTx: Paybutton tx that does not have spec number of pushes
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] useWallet hook Migrating legacy wallet on mainnet
[00:04:37][CashTab Unit Tests] useWallet hook Verify default Cashtab settings are initialized
[00:04:37][CashTab Unit Tests] useWallet hook processChronikWsMsg() refreshes alias prices when aliasPrices is null
[00:04:37][CashTab Unit Tests] useWallet hook processChronikWsMsg() refreshes alias prices when aliasPrices exists, server and cashtab prices array length do not match
[00:04:37][CashTab Unit Tests] useWallet hook processChronikWsMsg() does not refresh alias prices when aliasPrices exists, server and cashtab array length do match
[00:04:37][CashTab Unit Tests] useWallet hook Verify a processChronikWsMsg() new block event updates the `aliasServerError` state var upon a /prices/ endpoint error
[00:04:37][CashTab Unit Tests] useWallet hook Verify refreshAliases() updates the `aliases` state variable on a successful /address/ endpoint response
[00:04:37][CashTab Unit Tests] useWallet hook Verify refreshAliases() updates the `aliasServerError` state variable upon an /address/ endpoint error
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with an input of 0
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with zero XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with a small XEC balance input with 2+ decimal figures
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with 1 Million XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with 1 Billion XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with total supply as XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with > total supply as XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with no balance
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with null input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with undefined as input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with non-numeric input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions Accepts a valid unix timestamp
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions Accepts an empty string and generates a new timestamp
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions Accepts no parameter and generates a new timestamp
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions Accepts 'undefined' as a parameter and generates a new date
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions Rejects an invalid string containing letters.
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions Rejects an invalid string containing numbers.
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with zero XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with a small XEC balance input with 2+ decimal figures
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with 1 Million XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with 1 Billion XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with total supply as XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with > total supply as XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with no balance
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with null input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with undefined sw.state.balance or sw.state.balance.totalBalance as input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatSavedBalance with non-numeric input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with zero XEC balance input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with a small XEC balance input with 2+ decimal figures
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with a large XEC balance input with 2+ decimal figures
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with no balance
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with null input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with undefined input
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions returns undefined formatTokenBalance with undefined inputs
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions test formatTokenBalance with valid balance & decimal inputs
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions returns undefined when passed invalid decimals parameter
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions returns undefined when passed invalid balance parameter
[00:04:37][CashTab Unit Tests] Correctly executes formatting functions maintains trailing zeros in balance per tokenDecimal parameter
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <BalanceHeader /> Renders the loader if balanceSats is not an integer
[00:04:37][CashTab Unit Tests] <BalanceHeader /> Renders the BalanceHeader component correctly with default locale en-US
[00:04:37][CashTab Unit Tests] <BalanceHeader /> Renders the BalanceHeader component correctly with fr-FR locale
[00:04:37][CashTab Unit Tests] <BalanceHeader /> Balance is hidden if cashtabSettings.balanceVisible is false
[00:04:37][CashTab Unit Tests] <BalanceHeader /> Renders fiat price for a non-USD currency
[00:04:37][CashTab Unit Tests] <BalanceHeader /> Fiat price and forex are not displayed if fiatPrice is unavailable
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] queryAliasServer() correctly throws a network error for server downtime or a malformed fetch url
[00:04:37][CashTab Unit Tests] queryAliasServer() correctly returns an array of alias objects for a valid eCash address that has registered aliases
[00:04:37][CashTab Unit Tests] queryAliasServer() correctly returns an array of alias objects for a valid prefix-less eCash address that has registered aliases
[00:04:37][CashTab Unit Tests] queryAliasServer() returns an empty array for a valid eCash address with no aliases
[00:04:37][CashTab Unit Tests] queryAliasServer() throws an error for an invalid eCash address
[00:04:37][CashTab Unit Tests] queryAliasServer() returns an alias object for a registered alias
[00:04:37][CashTab Unit Tests] queryAliasServer() returns an api error for a non-alphanumeric alias
[00:04:37][CashTab Unit Tests] queryAliasServer() returns a valid object for an unregistered alias
[00:04:37][CashTab Unit Tests] queryAliasServer() returns an error for an alias longer than 21 characters
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput: Alphanumeric string
[00:04:37][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput: String with emojis
[00:04:37][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput: String of max length for Cashtab Msg
[00:04:37][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: String exceeding max length for Cashtab Msg by 1 byte
[00:04:37][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: non-string input
[00:04:37][CashTab Unit Tests] Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: Empty string
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput Airdrop with no optional msg
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput Airdrop with many spaces for optional msg treated as no optional msg
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput Airdrop with optional alphanumeric msg
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput Airdrop with optional emoji and special characters msg
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput Airdrop with optional msg of max allowable length
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput getAirdropTargetOutput throws error for: Invalid tokenId provided
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput getAirdropTargetOutput throws error for: Airdrop msg exceeding max length for airdrop msg by 1 byte
[00:04:37][CashTab Unit Tests] getAirdropTargetOutput getAirdropTargetOutput throws error for: non-string input for airdrop msg
[00:04:37][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput: Valid alias to p2pkh address
[00:04:37][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput: Valid alias to p2sh address
[00:04:37][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput throws error for: Invalid alias
[00:04:37][CashTab Unit Tests] Alias registration target output building functions getAliasTargetOutput throws error for: Invalid address
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with emoji
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with emoji and text
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with special characters
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with Korean text
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with Arabic text
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with Chinese text
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alias with mixed foreign alphabets and emoji
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount: Alphanumeric valid v0 alias
[00:04:37][CashTab Unit Tests] Determines byte count of user input alias registrations getAliasByteCount throws error for: non-text input
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: a single emoji
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with characters and emojis
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with special characters
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with a mixture of symbols, multilingual characters and emojis
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: Alphanumeric string
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: String with emojis
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: String of max length for Cashtab Msg
[00:04:37][CashTab Unit Tests] Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount throws error for: non-text input
[00:04:37][CashTab Unit Tests] Build target output for opreturn as bip21 param getOpreturnParamTargetOutput: Valid opreturn param input
[00:04:37][CashTab Unit Tests] Build target output for opreturn as bip21 param getOpreturnParamTargetOutput: Max length for opreturn param
[00:04:37][CashTab Unit Tests] Build target output for opreturn as bip21 param getOpreturnParamTargetOutput throws error for: Invalid opreturn param input
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests mocks a new Cashtab user or incognito visitor
[00:04:37][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests: Wallet with xec and tokens
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <Receive /> Renders the loading component while loading
[00:04:37][CashTab Unit Tests] <Receive /> Renders the Receive screen correctly
[00:04:37][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of expected width for desktop
[00:04:37][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of expected width for smallest supported mobile view
[00:04:37][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of size that is fully viewable in extension dimensions
[00:04:37][CashTab Unit Tests] <Receive /> Clicking the QR code copy pastes address to clipboard
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <Tx /> Renders the timestamp if timeFirstSeen !== 0
[00:04:37][CashTab Unit Tests] <Tx /> Renders the timestamp as block timestamp timeFirstSeen === 0
[00:04:37][CashTab Unit Tests] <Tx /> Does not render a timestamp for an unconfirmed tx with timeFirstSeen === '0'
[00:04:37][CashTab Unit Tests] <Tx /> Renders from contact name if a tx is from an address in contact list
[00:04:37][CashTab Unit Tests] <Tx /> Does not render from contact name if a tx is not from an address in contact list
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][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
[00:04:37][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price is set in state on successful API fetch
[00:04:37][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price remains null in state on API error
[00:04:37][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
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid.
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid. Unsupported legacy params are ignored.
[00:04:37][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
[00:04:37][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
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Params are ignored if only value param is present
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Params are ignored if param is duplicated
[00:04:37][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
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL bip21 param - valid bip21 param with amount and op_return_raw is parsed as expected
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL bip21 param - an invalid bip21 param shows validation errors but cannot be changed
[00:04:37][CashTab Unit Tests] <SendXec /> rendered with params in URL No params. Send screen loads normally with no rendered input.
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <CashtabTestWrapper /> With default props, renders App component
[00:04:37][CashTab Unit Tests] <CashtabTestWrapper /> We can render other pages by passing the route
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <CreateToken /> If wallet has sufficient XEC, renders CreateTokenForm
[00:04:37][CashTab Unit Tests] <CreateToken /> If wallet has insufficient XEC, renders component but does not render CreateTokenForm
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Kind of a normal balance calculation
[00:04:37][CashTab Unit Tests] Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Wallet balance of total XEC supply
[00:04:37][CashTab Unit Tests] Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Empty array returns 0 balance
[00:04:37][CashTab Unit Tests] Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Array containing valid and invalid chronik utxos returns NaN
[00:04:37][CashTab Unit Tests] Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Array containing invalid chronik utxos returns NaN
[00:04:37][CashTab Unit Tests] Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats throws error for: Call with non-Array
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: Total XEC supply
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: Total XEC supply
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: Total XEC supply less 1 satoshi
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: Total XEC supply less 1 satoshi
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: 0 is 0
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: 0 is 0
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis toXec throws error for: Bad XEC amount, too many decimal places
[00:04:37][CashTab Unit Tests] Converts satoshis to XEC and XEC to satoshis toSatoshis throws error for: Bad XEC amount, too many decimal places
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <ScanQRCode /> Renders the modal on load if loadWithCameraOpen is true
[00:04:37][CashTab Unit Tests] <ScanQRCode /> Does not render the modal on load if loadWithCameraOpen is false
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Correctly executes token parsing methods checkForTokenById returns 'false' if token ID is not found in wallet token list
[00:04:37][CashTab Unit Tests] Correctly executes token parsing methods checkForTokenById returns 'true' if token ID is found in wallet token list
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Detect mobile or desktop devices isMobile: Navigator is undefined
[00:04:37][CashTab Unit Tests] Detect mobile or desktop devices isMobile: Navigator.userAgentData is undefined
[00:04:37][CashTab Unit Tests] Detect mobile or desktop devices isMobile: Desktop device on browser with userAgentData support
[00:04:37][CashTab Unit Tests] Detect mobile or desktop devices isMobile: Mobile device on browser with userAgentData support
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] Cashtab transaction broadcasting functions Throws error attempting to burn an eToken ID that is not within the wallet's utxo
[00:04:37][CashTab Unit Tests] Cashtab transaction broadcasting functions creates a token correctly
[00:04:37][CashTab Unit Tests] Cashtab transaction broadcasting functions Throws correct error if user attempts to create a token with an invalid wallet
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <Home /> Renders the loading component while loading, then the Home screen
[00:04:37][CashTab Unit Tests] <Home /> Renders the Home screen with API error
[00:04:37][CashTab Unit Tests] <Home /> Renders Sideshift button if user loads with a new wallet
[00:04:37][<Home /> Renders Sideshift button if user loads with a new wallet] Error: Unable to find role="button" and name `/Exchange to XEC via SideShift/` Ignored nodes: comments, script, style <body> <div> <div class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa" > <div> <div aria-busy="true" aria-live="polite" class="ant-spin ant-spin-spinning css-dev-only-do-not-override-1rqnfsa" > <span aria-label="loading" class="anticon anticon-loading anticon-spin cashLoadingIcon ant-spin-dot" role="img" > <svg aria-hidden="true" data-icon="loading" fill="currentColor" focusable="false" height="1em" viewBox="0 0 1024 1024" width="1em" > <path d="M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z" /> </svg> </span> </div> </div> <div class="ant-spin-container ant-spin-blur" > <div class="sc-LKuAh jSXNAo" > <div class="sc-kZmsYB eHkWzo" > <div class="sc-RcBXQ gMCskf" > <div class="sc-hzNEM iiFjIO" > <div class="sc-iSDuPN ccpgHi" > <img alt="cashtab" class="sc-fZwumE bcurWd" src="test-file-stub" /> </div> <div class="sc-elJkPf geNavj" data-testid="wallet-info-ctn" > <div class="sc-dEoRIm iVOOxs" > <div class="sc-jtggT dNidya" > Transaction Fixtures </div> <a href="/configure" > <svg class="sc-jTzLTM bTdWCF" /> </a> <div> <button aria-checked="true" class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked" role="switch" type="button" > <div class="ant-switch-handle" /> <span class="ant-switch-inner" > <span class="ant-switch-inner-checked" > <svg class="sc-cSHVUG bgwEHu" /> </span> <span class="ant-switch-inner-unchecked" > <svg class="sc-kAzzGY fUTkYj" /> </span> </span> </button> </div> </div> <div class="sc-ebFjAB kxaSkj" data-testid="balance-xec" > 0.00 XEC </div> <div class="sc-jKVCRD bKzIGa" data-testid="balance-fiat" > $ 0.00   USD </div> <p class="sc-kaNhvL kDOvrh" data-testid="ecash-price" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-jwKygS hNrbtP" data-testid="loading-ctn" /> </div> <div class="sc-iBEsjs jmPiFQ" > <button class="sc-gmeYpB dpikyJ" > <svg /> </button> <button class="sc-gmeYpB eQwTbZ" data-testid="nav-btn-send" > <svg class="sc-kEYyzF dWIuoY" style="margin-top: -9px;" /> </button> <button class="sc-gmeYpB eQwTbZ" data-testid="nav-btn-etokens" > <span aria-label="appstore-add" class="anticon anticon-appstore-add" role="img" style="font-size: 24px;" > <svg aria-hidden="true" data-icon="appstore-add" fill="currentColor" focusable="false" height="1em" viewBox="64 64 896 896" width="1em" > <defs /> <path d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /> </svg> </span> </button> <button class="sc-gmeYpB eQwTbZ" data-testid="nav-btn-receive" > <svg /> </button> <div class="sc-chbbiW ktwTIv" data-testid="hamburger" > <span class="sc-kxynE bbUulF" /> <div class="sc-cooIXK gkGTON" data-testid="hamburger-menu" > <button class="sc-fcdeBU RXlWo" data-testid="nav-btn-airdrop" > <p> Airdrop </p> <svg height="33px" width="30px" /> </button> <button class="sc-fcdeBU RXlWo" data-testid="nav-btn-swap" > <p> Swap </p> <span aria-label="swap" class="anticon anticon-swap" role="img" style="font-size: 24px;" > <svg aria-hidden="true" data-icon="swap" fill="currentColor" focusable="false" height="1em" viewBox="64 64 896 896" width="1em" > <path d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /> </svg> </span> </button> <button class="sc-fcdeBU RXlWo" data-testid="nav-btn-signverifymsg" > <p> Sign & Verify </p> <svg class="sc-chPdSV kiHcnD" /> </button> <button class="sc-fcdeBU RXlWo" data-testid="nav-btn-configure" > <p> Settings </p> <svg height="33px" width="30px" /> </button> </div> </div> </div> </div> </div> </div> </div> </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.findByRole (/work/cashtab/src/components/Home/__tests__/Home.test.js:128:26)
[00:04:37][CashTab Unit Tests] <Home /> Renders the onboarding screen for a new wallet
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <QRCode /> QRCode copying ecash address
[00:04:37][CashTab Unit Tests] <QRCode /> QRCode copying eToken address
[00:04:37][CashTab Unit Tests] <QRCode /> QRCode will render without address
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <CreateTokenForm /> User can input valid token parameters, generate a token, and view a success notification
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered
[00:04:37][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered when pending list is empty
[00:04:37][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered when registered list is empty
[00:04:37][CashTab Unit Tests] <Alias /> Registered and Pending lists still renders upon alias pricing response error and aliasServerError is false
[00:04:37][CashTab Unit Tests] <Alias /> Registered and Pending lists do not render when aliasValidationError is false and aliasServerError is populated
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <App /> Renders 404 on a bad route
[00:04:37][CashTab Unit Tests] <App /> Navigation menu routes to expected components
[00:04:37][CashTab Unit Tests] <App /> Adding a contact to Configure.js from clicking on tx history adds it to localforage and wallet context
[00:04:37][CashTab Unit Tests] <App /> Adding a contact to an existing contactList by clicking on tx history adds it to localforage and wallet context
[00:04:37][CashTab Unit Tests] <App /> A user with legacy blank contactList in localstorage is migrated on startup
[00:04:37][CashTab Unit Tests] <App /> Clicking "reply" on a Cashtab Msg correctly populates the SendXec to address and amount fields
[00:04:37][CashTab Unit Tests] <App /> We do not see the camera auto-open setting in the config screen on a desktop device
[00:04:37][CashTab Unit Tests] <App /> We do see the camera auto-open setting in the config screen on a mobile device
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon successfully signing a message
[00:04:37][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon successfully verifying a message
[00:04:37][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon signature verification error
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <Configure /> We can add, delete, rename, contacts from the Configure screen, and add a savedWallet as a contact
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <SendToken /> Renders the SendToken screen with send address input
[00:04:37][CashTab Unit Tests] <SendToken /> Accepts a valid ecash: prefixed address
[00:04:37][CashTab Unit Tests] <SendToken /> Accepts a valid etoken: prefixed address
[00:04:37][CashTab Unit Tests] <SendToken /> Accepts a valid alias
[00:04:37][CashTab Unit Tests] <SendToken /> Displays a validation error for an invalid address
[00:04:37][CashTab Unit Tests] <SendToken /> Displays a validation error for an alias without .xec suffix
[00:04:37][CashTab Unit Tests] <SendToken /> Displays a validation error for valid alias that has not yet been registered
[00:04:37][CashTab Unit Tests] <SendToken /> Displays expected error if alias server gives a bad response
[00:04:37][CashTab Unit Tests] <SendToken /> Displays a validation error if the user includes any query string
[00:04:37][CashTab Unit Tests] <SendToken /> Renders the send token notification upon successful broadcast
[00:04:37][CashTab Unit Tests] <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
[00:04:37][Step 1/1] CashTab Unit Tests
[00:04:37][CashTab Unit Tests] <SendXec /> Renders the SendXec screen with send address input
[00:04:37][CashTab Unit Tests] <SendXec /> Pass valid address to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Pass valid alias to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Pass an invalid address to Send To field and get a validation error
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a possibly valid alias without .xec suffix to Send To field and get expected error
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid alias to Send To field that has not yet been registered and get expected error
[00:04:37][CashTab Unit Tests] <SendXec /> Get expected error msg and send disabled if bad response from alias server
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount param to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid alias and bip21 query string with valid amount param to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with invalid amount param (dust) to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Valid address with valid bip21 query string with valid amount param rejected if amount exceeds wallet balance
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid alias and bip21 query string with invalid amount param (too many decimals) to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid address and an invalid bip21 query string
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with op_return_raw param to Send To field
[00:04:37][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount and op_return_raw params to Send To field
[00:04:37][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
[00:04:37][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
[00:04:37][Creating archive artifacts.tar.gz] Archive was created, file size 258.29 KB (264490 bytes)
[00:05:24][Publishing artifacts] Publishing 1 file using [WebPublisher]: results/artifacts => artifacts.tar.gz
[00:05:24][Publishing artifacts] Publishing 1 file using [ArtifactsCachePublisher]: results/artifacts => artifacts.tar.gz
[00:04:37][Step 1/1] ##teamcity[publishArtifacts '+:results/artifacts=>artifacts.tar.gz']
[00:05:25][Step 1/1] Build cashtab-tests failed with exit code 1
[00:04:37][Step 1/1] ##teamcity[buildProblem timestamp='2024-02-26T00:04:37.369' description='Build cashtab-tests failed with exit code 1']
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </svg>
[00:04:37][Step 1/1] </span>
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-fcdeBU RXlWo"
[00:04:37][Step 1/1] data-testid="nav-btn-signverifymsg"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <p>
[00:04:37][Step 1/1] Sign & Verify
[00:04:37][Step 1/1] </p>
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] class="sc-chPdSV kiHcnD"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] <button
[00:04:37][Step 1/1] class="sc-fcdeBU RXlWo"
[00:04:37][Step 1/1] data-testid="nav-btn-configure"
[00:04:37][Step 1/1] >
[00:04:37][Step 1/1] <p>
[00:04:37][Step 1/1] Settings
[00:04:37][Step 1/1] </p>
[00:04:37][Step 1/1] <svg
[00:04:37][Step 1/1] height="33px"
[00:04:37][Step 1/1] width="30px"
[00:04:37][Step 1/1] />
[00:04:37][Step 1/1] </button>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </div>
[00:04:37][Step 1/1] </body>
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 126 | // Sideshift button is rendered
[00:04:37][Step 1/1] 127 | expect(
[00:04:37][Step 1/1] > 128 | await screen.findByRole('button', {
[00:04:37][Step 1/1] | ^
[00:04:37][Step 1/1] 129 | name: /Exchange to XEC via SideShift/,
[00:04:37][Step 1/1] 130 | }),
[00:04:37][Step 1/1] 131 | ).toBeInTheDocument();
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
[00:04:37][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
[00:04:37][Step 1/1] at Object.findByRole (src/components/Home/__tests__/Home.test.js:128:26)
[00:04:37][Step 1/1]
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] Test Suites: 1 failed, 30 passed, 31 total
[00:04:37][Step 1/1] Tests: 1 failed, 620 passed, 621 total
[00:04:37][Step 1/1] Snapshots: 0 total
[00:04:37][Step 1/1] Time: 39.99 s
[00:04:37][Step 1/1] Ran all test suites.
[00:04:37][Step 1/1] Jest did not exit one second after the test run has completed.
[00:04:37][Step 1/1]
[00:04:37][Step 1/1] 'This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue.
[00:04:37][Step 1/1] Build cashtab-tests failed with exit code 1
[00:04:47][Step 1/1] Process exited with code 1
[00:05:25][Step 1/1] Process exited with code 1 (Step: Command Line)
[00:05:25][Step 1/1] Waiting for 1 service processes to complete
[00:05:25][Step 1/1] Ant JUnit report watcher
[00:05:25][Ant JUnit report watcher] 1 report found for paths:
[00:05:25][Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[00:05:25][Ant JUnit report watcher] Successfully parsed
[00:05:25][Successfully parsed] 1 report
[00:05:25][Successfully parsed] results/artifacts/junit/cashtab.xml
[00:05:26][Step 1/1] Step Command Line failed
[00:05:26]Ant JUnit report watcher
[00:05:26][Ant JUnit report watcher] No reports found for paths:
[00:05:26][Ant JUnit report watcher] +:results/test_bitcoin.xml
[00:05:26][Ant JUnit report watcher] +:results/**/junit_results*.xml
[00:05:26][Ant JUnit report watcher] +:results/**/*junit.xml
[00:05:26]Publishing internal artifacts (4s)
[00:05:31][Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[00:05:31][Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[00:05:26]Publishing artifacts (5s)
[00:05:26][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]
[00:05:26][Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[00:05:26][Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/cashtab-tests/gitian-results' not found
[00:05:26][Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/cashtab-tests/*.log' not found
[00:05:32]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