Page MenuHomePhabricator

[Cashtab] Handle multiple token types on token action screen
ClosedPublic

Authored by bytesofman on Fri, Apr 12, 17:21.

Details

Summary

The send-token page was built to only send SLP1 fungible tokens. We will add support for all eCash tokens. So, we need a way to show the user what kind of token this is and control the available actions based on the type.

Add this functionality.

We add mocks and test to ETokens/ because the plan is to migrate the send-tokens/ route and screen to a token-actions/ route and screen, to be handled in a later diff.

Summary of changes

  • Add an icon on the token page a user can click to get more info about the type of token
  • conditionally render token actions depending on the token type (for now, it's just all or nothing; we do not render actions if cashtab does not yet support this type of token)
  • confirm expected behavior with new tests and mocks (we have to update the mocks in SendToken since they were stubs, and now that we conditionally render on token type, we need to know the token type)
Test Plan

npm test

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:132:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:163:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:192:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid alias ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:222:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:280:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:303:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:328:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:373:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:411:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:447:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:489:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:555:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton ======
Error: Unable to find an element with the text: /CACHET/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:661:30)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input
CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid alias
CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address
CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered
CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response
CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string
CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet
CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton

good logic for token type and description, improve svg icons, modal, conditionally render form only if cashtab supports token

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:132:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:163:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:192:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid alias ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:222:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:280:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:303:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:328:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:373:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:411:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:447:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:489:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:555:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton ======
Error: Unable to find an element with the text: /CACHET/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:661:30)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input
CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid alias
CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address
CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered
CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response
CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string
CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet
CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton

Add mocks and tests for expected rendering of different token types

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:132:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input

Failed tests logs:

====== CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token ======
Error: Unable to find an element with the text: /Vespene Gas/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE OTIpE"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Token Test"
                  >
                    Token Test
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,970.81
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Etokens/__tests__/TokenActions.test.js:114:27)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:132:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
              <div
                class="sc-hUfwpO dqkrok"
                title="Balance in Local Currency"
              >
                $
                0.29
                 
                USD
              </div>
              <p
                class="sc-imABML kpiOij"
                title="Price in Local Currency"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </p>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          >
            <div
              class="sc-cmthru fynfMd"
              title="Tx History"
            >
              <div
                class="sc-eHgmQL fDtbdS"
              >
                <div
                  class="sc-cvbbAY fHiiuM"
                >
                  <div
                    class="sc-jWBwVP hnnUHX"
                    type="Received"
                  >
                    <div
                      class="sc-brqgnP kHtlno"
                    >
                      <svg
                        title="tx-received"
                      />
                      <div
                        class="sc-jAaTju jRNrrJ"
                      >
                        <div
                          class="sc-jDwBTQ eJsdCO"
                        >
                          Received
                           from
                          <a
                            class="sc-fMiknA bwvVdb"
                            href="https://explorer.e.cash/address/ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6"
                            rel="noreferrer"
                            target="_blank"
                          >
                            qp8...gg6
                          </a>
                        </div>
                        <div
                          class="sc-gPEVay bMTqTP"
                        >
                          Apr 15, 2024, 13:29:31
                        </div>
                      </div>
                   ...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:165:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:192:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid alias ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:222:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:280:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:303:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:328:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:373:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:411:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:447:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:489:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:555:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton ======
Error: Unable to find an element with the text: /CACHET/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:661:30)

Each failure log is accessible here:
CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input
CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid alias
CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address
CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered
CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response
CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string
CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet
CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton

Failed tests logs:

====== CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token ======
Error: Unable to find an element with the text: /Vespene Gas/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE OTIpE"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Token Test"
                  >
                    Token Test
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,970.81
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Etokens/__tests__/TokenActions.test.js:114:27)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:132:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
              <div
                class="sc-hUfwpO dqkrok"
                title="Balance in Local Currency"
              >
                $
                0.29
                 
                USD
              </div>
              <p
                class="sc-imABML kpiOij"
                title="Price in Local Currency"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </p>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          >
            <div
              class="sc-cmthru fynfMd"
              title="Tx History"
            >
              <div
                class="sc-eHgmQL fDtbdS"
              >
                <div
                  class="sc-cvbbAY fHiiuM"
                >
                  <div
                    class="sc-jWBwVP hnnUHX"
                    type="Received"
                  >
                    <div
                      class="sc-brqgnP kHtlno"
                    >
                      <svg
                        title="tx-received"
                      />
                      <div
                        class="sc-jAaTju jRNrrJ"
                      >
                        <div
                          class="sc-jDwBTQ eJsdCO"
                        >
                          Received
                           from
                          <a
                            class="sc-fMiknA bwvVdb"
                            href="https://explorer.e.cash/address/ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6"
                            rel="noreferrer"
                            target="_blank"
                          >
                            qp8...gg6
                          </a>
                        </div>
                        <div
                          class="sc-gPEVay bMTqTP"
                        >
                          Apr 15, 2024, 13:29:55
                        </div>
                      </div>
                   ...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:165:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:192:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Accepts a valid alias ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:222:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:280:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:303:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:328:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:373:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:411:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:447:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:489:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:555:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton ======
Error: Unable to find an element with the text: /CACHET/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:661:30)

Each failure log is accessible here:
CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input
CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid alias
CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address
CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered
CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response
CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string
CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
CashTab Unit Tests: <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet
CashTab Unit Tests: <SendToken /> We can mint an slpv1 token if we have a mint baton

update mocks for SendToken tests

Failed tests logs:

====== CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token ======
Error: Unable to find an element with the text: /Vespene Gas/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE OTIpE"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Token Test"
                  >
                    Token Test
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,970.81
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Etokens/__tests__/TokenActions.test.js:114:27)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:135:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)

Each failure log is accessible here:
CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE KvLGx"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
              <div
                class="sc-hUfwpO dqkrok"
                title="Balance in Local Currency"
              >
                $
                0.29
                 
                USD
              </div>
              <p
                class="sc-imABML kpiOij"
                title="Price in Local Currency"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </p>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          >
            <div
              class="sc-VJcYb gBGKWY"
            >
              1
               
              BearNip
               (
              BEAR
              )
            </div>
            <div
              class="sc-qrIAp ezKcrA"
              title="Token Stats"
            >
              <div
                class="sc-ipZHIp dIEugn"
              >
                <button
                  class="sc-hmXxxW eOeYde"
                >
                  <img
                    alt="icon for 3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109"
                    height="128"
                    src="https://icons.etokens.cash/128/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109.png"
                    width="128"
                  />
                </button>
              </div>
              <div
                class="sc-ipZHIp dIEugn"
              >
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    Type:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    <div
                      class="sc-ipXKqB sjWry"
                    >
                      SLP
                       
                      <button
                        aria-label="Click for more info about this token type"
                        class="sc-cQFLBn oyuJR"
                      >
                        <svg
                          title="More Info"
                        />
                      </button>
                    </div>
                  </div>
                </div>
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    Token Id:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    <a
                      href="https://explorer.e.cash/tx/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109"
                      rel="noopener noreferrer"
                      target="_blank"
                    >
                      3fe
                      ...
                      109
                    </a>
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    <button
                      class="sc-cQFLBn oyuJR"
                    >
                      <svg
                        title="copy-paste"
                      />
                    </button>
                  </div>
                </div>
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    decimals:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    0
                  </div>
                </div>
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    url:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    <a
                      href="https://cashtab.com/"
                      rel="noreferrer"
                      target="_blank"
                    >
                      cashtab.com...
                    </a>
                  </div>
                </div>
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    created:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    Mar 10, 2023
                  </div>
                </div>
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    Genesis Qty:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    4,444
                  </div>
                </div>
                <div
                  class="sc-iGrrsa kyevqD"
                >
                  <div
                    class="sc-bmyXtO bJpodt"
                  >
                    Supply:
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    Loading...
                  </div>
                </div>
              </div>
            </div>
            <div
              class="sc-cqCuEk knklyr"
              title="Token Actions"
            >
              <div
                class="sc-dEoRIm Izmv"
              >
                <div
                  class="sc-daURTG cFYicl"
                >
                  <div
                    class="sc-bXGyLb felYYc"
                  >
                    <input
                      class="sc-krvtoX jmGpwv"
                      id="Toggle Send"
                      name="Toggle Send"
                      title="Toggle Send"
                      type="checkbox"
                    />
                    <label
                      class="sc-lkqHmb eIJMVN"
                      for="Toggle Send"
                    >
                      <span
                        class="sc-eLExRp iAZhIM"
                        data-off="➡️"
                        data-on="➡️"
                      />
                      <span
                        class="sc-cbkKFq eVdNxj"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-ckVGcZ hCXLOb"
                >
                  Send 
                  BearNip
                   (
                  BEAR
                  )
                </div>
              </div>
              <div
                class="sc-dEoRIm Izmv"
              >
                <div
                  class="sc-daURTG cFYicl"
                >
                  <div
                    class="sc-bXGyLb felYYc"
                  >
                    <input
                      class="sc-krvtoX jmGpwv"
                      id="Toggle Airdrop"
                      name="Toggle Airdrop"
                      title="Toggle Airdrop"
                      type="checkbox"
                    />
                    <label
                      class="sc-lkqHmb eIJMVN"
                      for="Toggle Airdrop"
                    >
                      <span
                        class="sc-eLExRp iAZhIM"
                        data-off="  "
                        data-on="  "
                      />
                      <span
                        class="sc-cbkKFq eVdNxj"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-ckVGcZ hCXLOb"
                >
                  Airdrop XEC to 
                  BEAR
                   holders
                </div>
              </div>
              <div
                class="sc-dEoRIm Izmv"
              >
                <div
                  class="sc-daURTG cFYicl"
                >
                  <div
                    class="sc-bXGyLb felYYc"
                  >
                    <input
                      class="sc-krvtoX jmGpwv"
                      id="Toggle Burn"
                      name="Toggle Burn"
                      title="Toggle Burn"
                      type="checkbox"
                    />
                    <label
                      class="sc-lkqHmb eIJMVN"
                      for="Toggle Burn"
                    >
                      <span
                        class="sc-eLExRp iAZhIM"
                        data-off="  "
                        data-on="  "
                      />
                      <span
                        class="sc-cbkKFq eVdNxj"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-ckVGcZ hCXLOb"
                >
                  Burn 
                  BEAR
                </div>
              </div>
              <div
                class="sc-dEoRIm Izmv"
              >
                <div
                  class="sc-daURTG cFYicl"
                >
                  <div
                    class="sc-bXGyLb felYYc"
                  >
                    <input
                      class="sc-krvtoX jmGpwv"
                      disabled=""
                      id="Toggle Mint"
                      name="Toggle Mint"
                      title="Toggle Mint"
                      type="checkbox"
                    />
                    <label
                      class="sc-lkqHmb cOLoPp"
                      disabled=""
                      for="Toggle Mint"
                    >
                      <span
                        class="sc-eLExRp iAZhIM"
                        data-off="⚗️"
                        data-on="⚗️"
                      />
                      <span
                        class="sc-cbkKFq eVdNxj"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-ckVGcZ hCXLOb"
                >
                  Mint
                   (disabled, no mint baton in wallet)
                </div>
              </div>
            </div>
          </div>
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:333:39)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:540:9)
    at processTimers (node:internal/timers:514:7)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered

bytesofman added inline comments.
cashtab/src/components/Send/SendToken.js
184 ↗(On Diff #47153)

we conditionally render different token info and different available actions depending on the token type, as parsed from the chronik.token response

This could be a separate function, but since it is only impacting the rendering of this component, imo it is more appropriate to test it here with the expected rendering impact.

emack requested changes to this revision.Mon, Apr 15, 14:25
emack added a subscriber: emack.

Can you send some ALP and NFT parent tokens to ecash:qzz0p9yux89uvgnq86u5qnztver6u7g0vqc65920xr pls? thx.

cashtab/src/components/Send/SendToken.js
197 ↗(On Diff #47154)
721 ↗(On Diff #47154)

It's not ideal in terms of UX when the user clicks the question mark icon but then has to look down the page to see the description. It should be similar to a popover effect when it renders on top, or as a standard tooltip effect.

image.png (597×678 px, 170 KB)

725–726 ↗(On Diff #47154)

only need one of these buttons if they're both doing the same action

822 ↗(On Diff #47154)

Similar to the txid toast a few diffs back, add "Token Id...." to the start of this data string as additional context for users who don't know this is a token id.

image.png (136×394 px, 17 KB)

This revision now requires changes to proceed.Mon, Apr 15, 14:25
bytesofman marked 3 inline comments as done.

add mocks and test for nft1 parent

revert package-lock changes

cashtab/src/components/Send/SendToken.js
721 ↗(On Diff #47154)

perhaps not ideal but I don't think it's worth adding a position prop to the modal. The modal is coded to always appear exactly in the center of the screen.

If the user has scrolled down (say, on a page with more token actions, like NFTs when they are out) -- then it would be right above. I mention this bc it's not as easy as "just make the modal appear at the top of the screen" -- that only happens to work for the case of a token where the user has not scrolled or limited token actions mean limited scrolling.

I can see some benefit from popping the modal up right on the click but imo it is not worth the added complexity at this stage in Cashtab dev.

As for a normal tooltip....oof really just do not want to build that. Again, that prob is a little better. But the modal solves the problem without the additional complication. Esp since would like to redesign Cashtab look and feel, want to avoid adding more stuff. I don't think a tooltip is that much better than the modal to justify its engineering and maintenance.

The modal prevents all user action outside of the modal, so it can't be ignored.

725–726 ↗(On Diff #47154)

this is from the slightly-weird API for the custom cashtab modal.

we need an onCancel() method as this is what the "X" does in the top right corner.

In this case, it's an info modal, so we also want "ok" to do the same thing.

arguably could be improved but not really related to this diff, and the situation needs to be handled somehow. In designing custom components, I tried to err on the side of "provide more specific info to the component" (vs antd approach of "attempt to assume everything the dev might need and make sure many many shims are needed if the dev wants something slightly different")

Failed tests logs:

====== CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token ======
Error: Unable to find an element with the text: /Vespene Gas/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE OTIpE"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Token Test"
                  >
                    Token Test
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,970.81
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Etokens/__tests__/TokenActions.test.js:115:27)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:135:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)

Each failure log is accessible here:
CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input

Failed tests logs:

====== CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token ======
Error: Unable to find an element with the text: /Vespene Gas/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE OTIpE"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Token Test"
                  >
                    Token Test
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,970.81
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Etokens/__tests__/TokenActions.test.js:115:27)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)
====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
Error: Unable to find an element with the text: /BEAR/. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dRaagA laBFzR"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fEUNkw gnoCAY"
      >
        <div
          class="sc-kcbnda jEZePL"
        >
          <div
            class="sc-dREXXX fWtPwI"
          >
            <div
              class="sc-gldTML lbJQwD"
            >
              <img
                alt="cashtab"
                class="sc-feryYK liSsDu"
                src="test-file-stub"
              />
            </div>
            <div
              class="sc-jKmXuR iWeDrx"
              title="Wallet Info"
            >
              <div
                class="sc-bfYoXt bWLQio"
              >
                <select
                  class="sc-gbOuXE duLXVt"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-dRFtgE bmOkor"
                    value="Transaction Fixtures"
                  >
                    Transaction Fixtures
                  </option>
                </select>
                <div
                  class="sc-eAKXzc liNdDE"
                >
                  <button
                    aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                    class="sc-cQFLBn oyuJR"
                  >
                    <svg
                      title="copy-paste"
                    />
                  </button>
                  <div
                    class="sc-daURTG cFYicl"
                  >
                    <div
                      class="sc-bXGyLb erYzRo"
                    >
                      <input
                        checked=""
                        class="sc-krvtoX jmGpwv"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        title="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-lkqHmb eIJMVN"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-eLExRp jHVKVy"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-cbkKFq cVAbHw"
                        />
                      </label>
                    </div>
                  </div>
                </div>
              </div>
              <div
                class="sc-gkFcWv MJJhw"
                title="Balance in XEC"
              >
                9,513.12
                 
                XEC
                 
              </div>
            </div>
          </div>
          <div
            class="sc-iIHSe gsGHQW"
          />
        </div>
        <div
          class="sc-hcmgZB dVJwsi"
        >
          <button
            class="sc-hgRTRy hgMBfW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-hgRTRy hgMBfW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-hgRTRy hgMBfW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-dHmInP cikLhU"
            title="Show Other Screens"
          >
            <span
              class="sc-ejGVNB gfrPvn"
            />
            <div
              class="sc-eLdqWK eSNrrT"
              title="Other Screens"
            >
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-iiUIRa glVVHE"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </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.findAllByText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:135:30)
    at Promise.then.completed (/work/cashtab/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (/work/cashtab/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (/work/cashtab/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (/work/cashtab/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (/work/cashtab/node_modules/jest-circus/build/run.js:121:9)
    at run (/work/cashtab/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (/work/cashtab/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (/work/cashtab/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (/work/cashtab/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (/work/cashtab/node_modules/jest-runner/build/testWorker.js:106:12)

Each failure log is accessible here:
CashTab Unit Tests: <TokenActions /> SLP1 fixed supply token
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input

This revision is now accepted and ready to land.Mon, Apr 15, 23:37