Loading...
Guest user 

First recorded build

 
All history
 

Last recorded build

[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-itybZL chknVF"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-fzsDOv eehMCE"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-gPWkxV cvQkfa"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-cIShpX kDjJIV"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-kafWEX bEfOBh"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <input
[05:44:04][Step 1/1] class="sc-feJyhm sc-jwKygS eMcJH"
[05:44:04][Step 1/1] name="address"
[05:44:04][Step 1/1] placeholder="Address"
[05:44:04][Step 1/1] value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-tilXH bLutsd"
[05:44:04][Step 1/1] title="Scan QR Code"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <svg />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-dqBHgY iKEgph"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-hGoxap hvIXtH"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <a
[05:44:04][Step 1/1] class="sc-cSHVUG hFvvRR"
[05:44:04][Step 1/1] href="https://explorer.e.cash/address/false"
[05:44:04][Step 1/1] rel="noreferrer"
[05:44:04][Step 1/1] target="_blank"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-cIShpX kDjJIV"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-kafWEX bEfOBh"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <input
[05:44:04][Step 1/1] class="sc-feJyhm sc-jwKygS eMcJH"
[05:44:04][Step 1/1] name="amount"
[05:44:04][Step 1/1] placeholder="Amount"
[05:44:04][Step 1/1] step="0.01"
[05:44:04][Step 1/1] type="number"
[05:44:04][Step 1/1] value="9509.26"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <select
[05:44:04][Step 1/1] class="sc-elJkPf sc-jtRfpW fZHEnY"
[05:44:04][Step 1/1] data-testid="currency-select-dropdown"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <option
[05:44:04][Step 1/1] class="sc-kTUwUJ gdmvdt"
[05:44:04][Step 1/1] data-testid="xec-option"
[05:44:04][Step 1/1] value="XEC"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] XEC
[05:44:04][Step 1/1] </option>
[05:44:04][Step 1/1] <option
[05:44:04][Step 1/1] class="sc-kTUwUJ gdmvdt"
[05:44:04][Step 1/1] data-testid="fiat-option"
[05:44:04][Step 1/1] value="USD"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] USD
[05:44:04][Step 1/1] </option>
[05:44:04][Step 1/1] </select>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-btzYZH fdrRQD"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] max
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-dqBHgY iKEgph"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-eMigcr gUSLxY"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-cIShpX kDjJIV"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <textarea
[05:44:04][Step 1/1] class="sc-cmTdod gVyMGt"
[05:44:04][Step 1/1] height="142"
[05:44:04][Step 1/1] name="multiAddressInput"
[05:44:04][Step 1/1] placeholder="One address & amount per line, separated by comma
[05:44:04][Step 1/1] e.g.
[05:44:04][Step 1/1] ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500
[05:44:04][Step 1/1] ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-iyvyFf ifNZvv"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-hwwEjo bTyfLU"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-fhYwyz bxdvwg"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-jzgbtB gtmFkE"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-gJWqzi eUqtUK"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-exAgwC drEAUM"
[05:44:04][Step 1/1] title="Toggle Cashtab Msg"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-cQFLBn gTEPaz"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <input
[05:44:04][Step 1/1] class="sc-lkqHmb caMISY"
[05:44:04][Step 1/1] id="Toggle Cashtab Msg"
[05:44:04][Step 1/1] name="Toggle Cashtab Msg"
[05:44:04][Step 1/1] type="checkbox"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <label
[05:44:04][Step 1/1] class="sc-gojNiO beHQrQ"
[05:44:04][Step 1/1] for="Toggle Cashtab Msg"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <span
[05:44:04][Step 1/1] class="sc-daURTG cgTIPi"
[05:44:04][Step 1/1] data-off="✉️"
[05:44:04][Step 1/1] data-on="✉️"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <span
[05:44:04][Step 1/1] class="sc-bXGyLb ehpwPH"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </label>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-rBLzX jnZaYd"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] Cashtab Msg
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-jzgbtB gtmFkE"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-gJWqzi eUqtUK"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-exAgwC drEAUM"
[05:44:04][Step 1/1] title="Toggle op_return_raw"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-cQFLBn gTEPaz"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <input
[05:44:04][Step 1/1] class="sc-lkqHmb caMISY"
[05:44:04][Step 1/1] id="Toggle op_return_raw"
[05:44:04][Step 1/1] name="Toggle op_return_raw"
[05:44:04][Step 1/1] type="checkbox"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <label
[05:44:04][Step 1/1] class="sc-gojNiO beHQrQ"
[05:44:04][Step 1/1] for="Toggle op_return_raw"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <span
[05:44:04][Step 1/1] class="sc-daURTG cgTIPi"
[05:44:04][Step 1/1] data-off=""
[05:44:04][Step 1/1] data-on=""
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <span
[05:44:04][Step 1/1] class="sc-bXGyLb ehpwPH"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </label>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-rBLzX jnZaYd"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] op_return_raw
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-fjmCvl kwQQHI"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-dTdPqK fSeooi"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] 9,509.26 XEC
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-kGXeez LHHXu"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] =
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] $ 0.29 USD
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-gqPbQI sc-bMVAic PNTzB"
[05:44:04][Step 1/1] style="margin-top: 12px;"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] Send
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-cjHlYL czMpOh"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-dHmInP fysuvA"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <svg />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] aria-label="Send"
[05:44:04][Step 1/1] class="sc-dHmInP fNRmYK"
[05:44:04][Step 1/1] style="padding-bottom: 10px;"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-iwsKbI cuDgAv"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="tx-sent"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] aria-label="Tokens"
[05:44:04][Step 1/1] class="sc-dHmInP fysuvA"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="Tokens"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] aria-label="Receive"
[05:44:04][Step 1/1] class="sc-dHmInP fysuvA"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="tx-received"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-fEUNkw jxxKde"
[05:44:04][Step 1/1] title="Show Other Screens"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <span
[05:44:04][Step 1/1] class="sc-dREXXX majFx"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] <div
[05:44:04][Step 1/1] class="sc-kcbnda jUxIgD"
[05:44:04][Step 1/1] title="Other Screens"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Wallet Backup
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="wallet"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Wallets
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="wallets"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Contacts
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="Contact List"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Airdrop
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="tx-airdrop"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Swap
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="swap"
[05:44:04][Step 1/1] ##teamcity[importData timestamp='2024-04-11T05:44:04.048' path='results/artifacts/junit/*.xml' type='junit']
[05:44:04][Step 1/1] Importing data from 'results/artifacts/junit/*.xml' (not existing file) with 'junit' processor
[05:44:04][Step 1/1] Publishing artifacts (32s)
[05:44:04][Publishing artifacts] Collecting files to publish: [+:results/artifacts=>artifacts.tar.gz]
[05:44:04][Step 1/1] Ant JUnit report watcher
[05:44:04][Ant JUnit report watcher] Watching paths:
[05:44:04][Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[05:44:04][Publishing artifacts] Creating archive artifacts.tar.gz
[05:44:04][Creating archive artifacts.tar.gz] Creating /home/teamcity/buildAgent/temp/buildTmp/TarPreprocessor5872373532872277803/artifacts.tar.gz
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint for token with decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Variable supply eToken mint for token with decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint for tokenId 50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Fixed supply eToken mint at max supply for 9 decimal token
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput: Variable supply eToken mint at max supply for 0 decimal token
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Variable supply eToken with mint baton at index other than 2
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Exceed 0xffffffffffffffff for genesis qty
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Invalid document hash
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Missing decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken genesis tx target outputs getSlpGenesisTargetOutput throws error for: Non-string name
[05:44:04][CashTab Unit Tests] slpv1 methods Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node: We can get a single token utxo from an array including other token utxos and non-token utxos
[05:44:04][CashTab Unit Tests] slpv1 methods Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node: We can get a multiple token utxos from an array including other token utxos and non-token utxos
[05:44:04][CashTab Unit Tests] slpv1 methods Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: We return an empty array if no matches are found from a bad tokenId
[05:44:04][CashTab Unit Tests] slpv1 methods Get all slpv1 SEND utxos from a mixed utxo set from ChronikClientNode getAllSendUtxos: In-node: We return an empty array if we have no tokenUtxos for a given tokenId
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSendTokenInputs: Token send with change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSendTokenInputs: Token send with no change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with no change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSendTokenInputs: Token send with decimals and change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with decimals and change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Sending more than utxos with decimals and change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Sending more than utxos with no decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Invalid decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: No token utxos
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send token inputs and outputs from in-node chronik-client getSlpBurnTargetOutput throws error for: Send qty is empty string
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with no change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with no change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos: Token send with decimals and change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSlpSendTargetOutputs with in-node inputs: Token send with decimals and change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Sending more than utxos with decimals and change output
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Sending more than utxos with no decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Invalid decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: No token utxos
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 send input utxos from in-node chronik-client getSendTokenInputs with in-node chronik utxos throws error for: Send qty is empty string
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken burn tx target outputs getSlpBurnTargetOutputs: Burn a fraction of balance
[05:44:04][CashTab Unit Tests] slpv1 methods Generating etoken burn tx target outputs getSlpBurnTargetOutputs: Burn all balance
[05:44:04][CashTab Unit Tests] slpv1 methods Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burn a single token utxo
[05:44:04][CashTab Unit Tests] slpv1 methods Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burns multiple token utxos
[05:44:04][CashTab Unit Tests] slpv1 methods Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs: Burns max slp quantity for 9 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Generating explicit etoken burn tx target output from in-node utxos getExplicitBurnTargetOutputs throws error if called with in-node utxos and no specified decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 mint baton(s) getMintBatons: We can get a single mint baton
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 mint baton(s) getMintBatons: We can get the correct mint baton from from an array including other token utxos, mint batons, and non-token utxos
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 mint baton(s) getMintBatons: We can get multiple mint batons
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 mint baton(s) getMintBatons: We return an empty array if no matches are found from a bad tokenId
[05:44:04][CashTab Unit Tests] slpv1 methods Get slpv1 mint baton(s) getMintBatons: We return an empty array if we have no mint batons for a given tokenId
[05:44:04][CashTab Unit Tests] slpv1 methods Generate target outputs for an slpv1 mint tx getMintTargetOutputs: Creates expected mint outputs for a 0-decimal token
[05:44:04][CashTab Unit Tests] slpv1 methods Generate target outputs for an slpv1 mint tx getMintTargetOutputs: Creates expected mint outputs for a 9-decimal token
[05:44:04][CashTab Unit Tests] slpv1 methods Generate target outputs for an slpv1 mint tx getMintTargetOutputs: Can create a target output for the largest mint qty supported by slpv1
[05:44:04][CashTab Unit Tests] slpv1 methods Generate target outputs for an slpv1 mint tx getMintTargetOutputs throws error for: Throws expected error if asked to mint 1 more than slpv1 max qty
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 0 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 1 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 2 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 3 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 4 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 5 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 6 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 7 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 8 decimals
[05:44:04][CashTab Unit Tests] slpv1 methods Gets max mint amount, decimalized getMaxMintAmount: 9 decimals
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for Cashtab pre 1.7.* for unit tests initializeCashtabStateAtLegacyWalletKeysForTests mocks a new Cashtab user or incognito visitor
[05:44:04][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for Cashtab pre 1.7.* for unit tests initializeCashtabStateAtLegacyWalletKeysForTests: Wallet with xec and tokens
[05:44:04][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests mocks a new Cashtab user or incognito visitor
[05:44:04][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests: Wallet with xec and tokens
[05:44:04][CashTab Unit Tests] Correctly prepares Cashtab mocked chronik client and localforage environment for unit tests initializeCashtabStateForTests: Multiple wallets
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidSideshiftObj() returns true for a valid sideshift library object
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidSideshiftObj() returns false if the sideshift library object failed to instantiate
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidSideshiftObj() returns false for an invalid sideshift library object
[05:44:04][CashTab Unit Tests] Cashtab validation functions validateMnemonic() returns true for a valid mnemonic
[05:44:04][CashTab Unit Tests] Cashtab validation functions validateMnemonic() returns false for an invalid mnemonic
[05:44:04][CashTab Unit Tests] Cashtab validation functions validateMnemonic() returns false for an empty string mnemonic
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token name that is a stringified number
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects eToken token name if longer than 68 characters
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects eToken token name if empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a 4-char eToken token ticker
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a 12-char eToken token ticker
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects eToken token ticker if empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects eToken token ticker if > 12 chars
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts tokenDecimals if zero
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts tokenDecimals if between 0 and 9 inclusive
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects tokenDecimals if empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects tokenDecimals if non-integer
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a valid eToken token document URL including special URL characters
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a blank string as a valid eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects eToken token name if longer than 68 characters
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with https protocol as eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with http protocol as eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with a primary and secondary top level domain as eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Accepts a domain input with just a subdomain as eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects a domain input with no top level domain, protocol or subdomain eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions Rejects a domain input as numbers eToken token document URL
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId accepts valid token ID that is 64 chars in length
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a token ID that is less than 64 chars in length
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a token ID that is more than 64 chars in length
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a token ID number that is 64 digits in length
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects null
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects undefined
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects special character input
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects non-alphanumeric input
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop accepts valid Total Airdrop Amount
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop rejects null
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop rejects undefined
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidXecAirdrop rejects empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects an alphanumeric input
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidTokenId rejects a number !> 0 in string format
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray accepts a valid airdrop exclusion list
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects an invalid airdrop exclusion list
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects a list of addresses if any are not prefixed
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects an empty airdrop exclusion list
[05:44:04][CashTab Unit Tests] Cashtab validation functions isValidAirdropExclusionArray rejects a null airdrop exclusion list
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes "bitcoin" is probably a scam token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes "ebitcoin" is probably a scam token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes "Lido Staked Ether", from coingeckoTop500Names, is probably a scam token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'matic-network', from coingeckoTop500Ids, is probably a scam token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'Australian Dollar', from Cashtab supported fiat currencies, is probably a scam token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'ebtc', from bannedTickers, is probably a scam token name
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'gbp', from bannedTickers, is probably a scam
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes 'Hong Kong Dollar', from fiatNames, is probably a scam
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes '₪', from fiat symbols, is probably a scam
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam recognizes an ordinary token name as acceptable
[05:44:04][CashTab Unit Tests] Cashtab validation functions isProbablyNotAScam accepts a token name with fragments of banned potential scam names
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on startup
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled if address has been entered but no amount
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled if amount has been entered but no address
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled for valid address and amount in send to one mode
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for valid address and amount entered in send to one mode, but app is in send to many mode and input is blank
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on zero balance for send to one
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on zero balance for send to many
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid address
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid amount
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid cashtab msg send to one if user has cashtab msg enabled
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled for invalid cashtab msg send to one if user has cashtab msg disabled
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid op_return_raw send to one if user has op_return_raw enabled
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled for invalid op_return_raw if user has op_return_raw disabled
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled for invalid opreturn msg send to many if cashtab msg is invalid and enabled
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled on priceApi error
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Enabled if isOneToManyXECSend and amount is not entered
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determining whether Send button should be disabled on SendXec screen shouldSendXecBeDisabled: Disabled if isOneToManyXECSend and we have a multiSendAddressError
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Blank string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Address only and no querystring
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: prefixless address input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: alias only and no querystring
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: alias missing .xec suffix
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param equal to user balance, no decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param exceeding user balance by one satoshi, no decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid amount param, with decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Invalid address with valid amount param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: etoken address with valid amount param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with invalid amount param (too many decimal places)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid alias with valid amount param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Invalid alias with valid amount param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with valid op_return_raw param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid alias with valid op_return_raw param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid address with invalid op_return_raw param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Valid amount and op_return_raw params
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: invalid querystring (unsupported params)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Invalid queryString, repeated param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Parses user input address strings with parseAddressInput parseAddressInput: Repeated op_return_raw param
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns true for a valid lowercase alphanumeric input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains uppercase char
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains special char
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains emoji
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains other special characters
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input is an empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains an empty space
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains symbols
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input is not a string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if input contains underscores
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns expected error if exceeds byte restriction
[05:44:04][CashTab Unit Tests] Cashtab validation functions Returns true if a given input meets alias spec or expected error msg if it does not meetsAliasSpec: returns true for an alias of max bytecount
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias send input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias missing prefix
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias with double suffix
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Valid alias with bad suffix
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Invalid alias (too long)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates user alias input on Send and SendToken screens isValidAliasSendInput: Invalid alias (nonalphanumeric)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Legacy empty contact list
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Empty contact list
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Array of more than one empty object is invalid
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: List with one valid entry
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Multiple valid entries
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Valid objects but also an empty object is false
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validating Cashtab Contact Lists isValidContactList: Valid alias formats are accepted
[05:44:04][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: Migrates a 1.4.x user to 1.5.0 settings
[05:44:04][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: User with only fiatCurrency in settings
[05:44:04][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: Migrates an empty object to default settings
[05:44:04][CashTab Unit Tests] Cashtab validation functions Appropriately migrates users with legacy settings migrateLegacyCashtabSettings: Returns object unchanged if it has all expected keys
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: A 1.4.x settings object is invalid
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: A 1.5.0 settings object is valid
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: Rejects an otherwise-valid settings object if the currency is not supported
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: Rejects an otherwise-valid settings object if a ticker is misnamed
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if the user has valid cashtab settings isValidCashtabSettings: Rejects an otherwise-valid settings object if it is from before the introduction of sendModal
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns false for legacy cashtabCache
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns false if there is not a map at tokens key
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns false for cashtabCache before 2.9.0
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns false for current version cashtabCache if it is missing the unknown token id
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns true for current version cashtabCache
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns true for current version cashtabCache if blocks key is missing
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if cashtabCache is valid or invalid isValidCashtabCache: Returns true for default cashtabCache
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns true for a valid Cashtab wallet
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false for a JSON-loaded pre-2.9.0 Cashtab wallet
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false for a pre-2.9.0 Cashtab wallet
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if not an object
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if false (used to indicate no wallet yet set)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing mnemonic
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing name
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing paths
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing hash in path1899 path object
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing address in path1899 path object
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing address in path1899 path object
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns true for a multi-path wallet
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet is missing wif in a secondary path object
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet has no path info objects
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if wallet.state is not an object
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no balanceSats in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if balances in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if balanceSats is not a number
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no slpUtxos in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no nonSlpUtxos in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if no tokens in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if hydratedUtxoDetails is in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a cashtab wallet is valid or invalid isValidCashtabWallet: Returns false if slpBalancesAndUtxos is in wallet.state
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: Dust minimum is valid
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: 1 satoshi below dust min is invalid
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: 0 is not a valid send amount
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value with one decimal place not exceeding user balance is accepted
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value with two decimal places not exceeding user balance is accepted
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value with more than two decimal places not exceeding user balance is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value using a decimal marker other than "." is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A non-number string is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: null is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: undefined is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value including non-numerical characters is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value exactly matching wallet balance is accepted
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A value exceeding wallet balance by 1 satoshi is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to less than the user total balance is accepted
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to one satoshi more than the user total balance is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to more than the user total balance is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send amount is valid isValidXecSendAmount: A fiat value that converts to more than the user total balance is rejected with error formatted in non-default locale
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Accepts correctly formed multisend output for amount exactly equal to wallet total balance
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Rejects correctly formed multisend output for amount exceeding wallet total balance by 1 satoshi
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Accepts correctly formed multisend output for amount exactly equal to wallet total balance if addresses are padded by extra spaces
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number if string includes an invalid address
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg for invalid value (dust)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line numberfor invalid value (too many decimal places)
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg for an empty input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number for an empty row
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg for non-string input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number if csv line does not include address and value
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input multi-send CSV is valid isValidMultiSendUserInput: Returns expected error msg and line number if a line has more than one comma
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: A decimalized string with no decimals equivalent to the user balance of this token is valid for a token with no decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: 0 is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: Blank input is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: Rejects non-string input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: Rejects input including a decimal marker other than "."
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: Rejects input multiple decimal points
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: Rejects input multiple consecutive decimal points
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: Rejects input containing non-decimal characters
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We cannot send a token satoshi more than tokenBalance
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We get non-plural error msg if token supports only 1 decimal place
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We cannot specify more decimal places than supported by the token
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We cannot have decimals for a token supporting 0 decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We can specify fewer decimal places than supported by the token
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We can specify the exact decimal places supported by the token
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We can include a decimal point at the end of the string and no decimal places
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input send or burn token amount is valid isValidTokenSendOrBurnAmount: We can include a decimal point at the end of the string and no decimal places, even if the token supports 0 decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: A decimalized string with no decimals is valid for a token with no decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: 0 is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: Blank input is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: Rejects non-string input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: Rejects input including a decimal marker other than "."
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: Rejects input with multiple decimal points
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: Rejects input multiple consecutive decimal points
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: Rejects input containing non-decimal characters
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We get non-plural error msg if token supports only 1 decimal place
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We cannot specify more decimal places than supported by the token
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We cannot have decimals for a token supporting 0 decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We can specify fewer decimal places than supported by the token
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We can specify the exact decimal places supported by the token
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We can include a decimal point at the end of the string and no decimal places
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We can include a decimal point at the end of the string and no decimal places, even if the token supports 0 decimals
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We accept the max mint amount
[05:44:04][CashTab Unit Tests] Cashtab validation functions Determines if a user input token mint amount is valid isValidTokenMintAmount: We reject one token satoshi more than the max mint amount
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Valid lowercase hex of max length is good
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Valid lowercase hex of 1 more than max length is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Valid lowercase hex of max length that starts with "6a" is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Valid hex of odd length below max is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Uppercase hex is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Even-length string containing non-hex characters is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Even-length string containing a space is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: Empty string is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Can tell if a string is valid bip21 op_return_raw input, or why it is not getOpReturnRawError: String of even spaces is rejected
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Rejects a string that starts with 6a
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Rejects a string that starts with invalid pushdata
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Rejects non-string input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Rejects non-hex input
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Accepts a valid hex string under max length
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Accepts a valid hex string of max length
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Rejects a valid hex string over max length
[05:44:04][CashTab Unit Tests] Cashtab validation functions Validates OP_RETURN raw for eCash node broadcast nodeWillAcceptOpReturnRaw: Rejects a valid hex string of odd length
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact name input getContactNameError: Accepts a max-length contact name if it does not exist in current contacts
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact name input getContactNameError: Accepts a max-length contact name if no contacts exist
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact name input getContactNameError: Rejects a max-length + 1 contact name if it does not exist in current contacts
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact name input getContactNameError: Rejects an empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact name input getContactNameError: Rejects a contact name if it already exists in contacts
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact address input getContactAddressError: No error from a valid ecash: prefixed address to an empty contact list
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact address input getContactAddressError: Expected error from a valid ecash: prefixed address if exists in contact list
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact address input getContactAddressError: Expected error from a valid prefixless ecash: address
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for contact address input getContactAddressError: Expected error from an invalid address
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for wallet name input getWalletNameError: Accepts a string of max length if no wallets exist with the same name
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for wallet name input getWalletNameError: Returns expected error for a string of max length if wallet exists with the same name
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for wallet name input getWalletNameError: Returns expected error for an empty string
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for wallet name input getWalletNameError: Returns expected error for blank spaces
[05:44:04][CashTab Unit Tests] Cashtab validation functions Gets error or false for wallet name input getWalletNameError: Returns expected error for wallet 1 char over the max name length
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions flattenChronikTxHistory successfully combines the result of getHistory into a single array
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for TabCash token
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for PoW token
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for Alita token
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions getMintAddress successfully parses chronik.tx response to determine mint address for a BUX self minted token
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Staking rewards coinbase tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Incoming XEC tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Outgoing XEC tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Alias registration
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Incoming eToken
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Outgoing eToken
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Genesis tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Incoming eToken tx with 9 decimals
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Legacy airdrop tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Outgoing encrypted msg (deprecated)
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Incoming encrypted msg (deprecated)
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Token burn tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Token burn tx with decimals
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: SWaP tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: PayButton tx with no data and payment id
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: PayButton tx with data and payment id
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: PayButton tx with no data and no payment id
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: PayButton tx with data and no payment id
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: PayButton tx with unsupported version number
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Paybutton tx that does not have spec number of pushes
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: External msg received from Electrum
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: Unknown app tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: We can parse a received ALP tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: External msg received from eCash Chat
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Parses supported tx types parseTx: slp v1 mint tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Sorts and trims chronik tx history sortAndTrimChronikTxHistory: successfully orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if all txs are confirmed
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Sorts and trims chronik tx history sortAndTrimChronikTxHistory: orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if some txs are confirmed and others unconfirmed
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Sorts and trims chronik tx history sortAndTrimChronikTxHistory: orders the result of flattenChronikTxHistory by blockheight and firstSeenTime if all txs are unconfirmed,
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Splits token utxos and non-token utxos using real in-node utxos
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Splits token utxos and non-token utxos
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Returns empty array for nonSlpUtxos if all utxos are token utxos
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions Separates SLP and non-SLP utxos organizeUtxosByType: Returns empty array for preliminarySlpUtxos if no token utxos found
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: slpv1 token with no minting batons
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: slpv1 token with no minting batons unconfirmed genesis tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: slpv1 token with minting baton
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: ALP token with a minting baton
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: slpv2 genesis tx
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: Slp type 2 token (BUX)
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: Error is thrown if 1st chronik API call not completed successfully
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We get info we want to cache about a token from its genesis tx and chronik token info endpoint getTokenGenesisInfo: Error is thrown if 2nd chronik API call not completed successfully
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We can get token balance from a large token utxo set and update the cache
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We can get token balance form a large token utxo set that includes a utxo of unknown tokenId and update the cache
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We can get utxos from multiple paths and tag each one with its path
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We can get and parse tx history from a multi-path wallet, and update the token cache at the same time
[05:44:04][CashTab Unit Tests] Cashtab chronik.js functions We can get and parse tx history from a multi-path wallet. If there is an error in getting cached token data, we still parse tx history. We add to token cache and get parsed tx history
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states localforage can set and get a map of tokeninfo by tokenId
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price is set in state on successful API fetch
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price remains null in state on API error
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states XEC price is set in state to fiat currency of user settings on successful API fetch
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states Cashtab loads wallet, settings, cache, and contactlist from localforage to context if they are present
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states processChronikWsMsg() refreshes alias prices when aliasPrices is null
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states processChronikWsMsg() refreshes alias prices when aliasPrices exists, server and cashtab prices array length do not match
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states processChronikWsMsg() does not refresh alias prices when aliasPrices exists, server and cashtab array length do match
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states Verify a processChronikWsMsg() new block event updates the `aliasServerError` state var upon a /prices/ endpoint error
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states Verify refreshAliases() updates the `aliases` state variable on a successful /address/ endpoint response
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states Verify refreshAliases() updates the `aliasServerError` state variable upon an /address/ endpoint error
[05:44:04][CashTab Unit Tests] useWallet hook rendering in different localforage states An incoming tx message from the websocket causes the wallet to update
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Kind of a normal balance calculation
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Wallet balance of total XEC supply
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Empty array returns 0 balance
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Array containing valid and invalid chronik utxos returns NaN
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats: Array containing invalid chronik utxos returns NaN
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Calculates total balance in satoshis from a valid set of chronik utxos getBalanceSats throws error for: Call with non-Array
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: Total XEC supply
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: Total XEC supply
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: Total XEC supply less 1 satoshi
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: Total XEC supply less 1 satoshi
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts satoshis to xec: 0 is 0
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis Converts xec to satoshis: 0 is 0
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis toXec throws error for: Bad XEC amount, too many decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts satoshis to XEC and XEC to satoshis toSatoshis throws error for: Bad XEC amount, too many decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Determines if the wallet has greater than or equal to a specified qty of a specified token hasEnoughToken: Returns true if wallet has token in exactly required amount
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Determines if the wallet has greater than or equal to a specified qty of a specified token hasEnoughToken: Returns false if wallet has token but less than required amount
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Determines if the wallet has greater than or equal to a specified qty of a specified token hasEnoughToken: Returns false if wallet does not have this token
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Creates a wallet from valid bip39 mnemonic createCashtabWallet: Creates a Cashtab wallet from a valid bip39 mnemonic
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts 1 USD from fiat to satoshis for string input
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts total XEC supply in USD from fiat to satoshis for string input
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Returns an integer even if input has arbitrarily high decimal precision for string input
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts 1 USD from fiat to satoshis for number input
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Converts total XEC supply in USD from fiat to satoshis for number input
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Converts string input of fiat send amount to satoshis XEC createCashtabWallet: Returns an integer even if input has arbitrarily high decimal precision for number input
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Determines legacy paths for a post-2.2.0 wallet with legacy paths
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Determines legacy paths for a post-2.9.0 wallet with legacy paths
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Determines legacy paths for a pre-2.2.0 wallet with legacy paths
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets legacy paths from a legacy wallet requiring migration getLegacyPaths: Returns an empty array if the wallet contains no legacy paths
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets expected array when activating a new wallet getWalletsForNewActiveWallet: Return expected wallets array
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets expected array when activating a new wallet getWalletsForNewActiveWallet: Returns wallets array unchanged if walletToActivate is already wallets[0]
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Gets expected array when activating a new wallet getWalletsForNewActiveWallet throws error for: Throws error if called with a wallet that is not in wallets
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Decimalizes amount for 0-decimal token amount larger than JS max safe integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Decimalizes amount for 0-decimal token amount larger than JS max safe integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Decimalizes amount for 9-decimal token amount larger than JS max safe integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Decimalizes amount for 9-decimal token amount larger than JS max safe integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Decimalizes amount for 9-decimal token amount larger than JS max safe integer with non-zero decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Decimalizes amount for 9-decimal token amount larger than JS max safe integer with non-zero decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Decimalizes 0 by adding expected decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Decimalizes 0 by adding expected decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Decimalizes a number less than 1 by adding expected decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Decimalizes a number less than 1 by adding expected decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Decimalizes smallest amount of slpv1 spec
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Decimalizes smallest amount of slpv1 spec
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount: Can decimalize for arbitrary decimals, as long as decimals is an integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back undecimalizeTokenAmount: Can decimalize for arbitrary decimals, as long as decimals is an integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount throws error for: Throws error if input is not a string
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount throws error for: Throws error if input is not a stringified integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can decimalize a token amount string and undecimalize it back decimalizeTokenAmount throws error for: Throws error if decimals is not an integer
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount: Returns expected amount for a 0-decimal token that has a decimal point at the end
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount: Handles a decimalized amount with no decimal place
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount: Handles a decimalized amount with under-specified decimal places
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws error if decimalizedAmount is not a string
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws error if decimalizedAmount is an empty string
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws error if decimalizedAmount includes more than one decimal
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws error if decimalizedAmount includes a decimal point that is not a period
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws error if decimalizedAmount includes alphabet characters
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws error if decimals is invalid
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws precision error if decimals are over-specified for a 0-decimal token
[05:44:04][CashTab Unit Tests] Cashtab wallet methods We can undecimalize a decimalizedTokenAmount string, and we throw expected errors if undecimalizeTokenAmount is invalid undecimalizeTokenAmount throws error for: Throws precision error if decimals are over-specified for a 9-decimal token
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Removes leading zeros from a string removeLeadingZeros: Removes leading zeros from a number string
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Removes leading zeros from a string removeLeadingZeros: Removes leading zeros from a string of all zeros
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Removes leading zeros from a string removeLeadingZeros: Preserves trailing zeros
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Removes leading zeros from a string removeLeadingZeros: Removes leading zeros and preserves trailing zeros from an arbitrary string
[05:44:04][CashTab Unit Tests] Cashtab wallet methods Successfully extracts a hash160 array from valid cashtab wallet
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Tx /> Incoming XEC-only
[05:44:04][CashTab Unit Tests] <Tx /> Outgoing XEC-only
[05:44:04][CashTab Unit Tests] <Tx /> Staking reward received by Cashtab wallet
[05:44:04][CashTab Unit Tests] <Tx /> Alias registration (v0)
[05:44:04][CashTab Unit Tests] <Tx /> Invalid alias registration (v0)
[05:44:04][CashTab Unit Tests] <Tx /> Another invalid alias registration (v0)
[05:44:04][CashTab Unit Tests] <Tx /> Received slpv1 fungible token
[05:44:04][CashTab Unit Tests] <Tx /> Received slpv1 fungible token with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Sent slpv1 fungible token
[05:44:04][CashTab Unit Tests] <Tx /> Sent slpv1 fungible token with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> slpv1 fungible token GENESIS
[05:44:04][CashTab Unit Tests] <Tx /> slpv1 fungible token GENESIS with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Received slpv1 fungible token amount less than 1 with 9 decimals
[05:44:04][CashTab Unit Tests] <Tx /> Received slpv1 fungible token with 9 decimals with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Received airdrop with msg (legacy push) with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Sent airdrop with msg with token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Off-spec airdrop tx
[05:44:04][CashTab Unit Tests] <Tx /> Sent encrypted msg
[05:44:04][CashTab Unit Tests] <Tx /> Received encrypted msg
[05:44:04][CashTab Unit Tests] <Tx /> Burn slpv1 fungible token
[05:44:04][CashTab Unit Tests] <Tx /> Burn slpv1 fungible token with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Burn slpv1 fungible token with 9 decimals
[05:44:04][CashTab Unit Tests] <Tx /> Swap tx
[05:44:04][CashTab Unit Tests] <Tx /> Received PayButton tx with nonce and no data
[05:44:04][CashTab Unit Tests] <Tx /> Sent PayButton tx with nonce and data
[05:44:04][CashTab Unit Tests] <Tx /> Sent empty PayButton tx (no nonce, no data)
[05:44:04][CashTab Unit Tests] <Tx /> Sent PayButton tx with data but no nonce
[05:44:04][CashTab Unit Tests] <Tx /> Off-spec PayButton tx
[05:44:04][CashTab Unit Tests] <Tx /> Unsupported version PayButton tx
[05:44:04][CashTab Unit Tests] <Tx /> eCash chat tx
[05:44:04][CashTab Unit Tests] <Tx /> off-spec eCash chat tx
[05:44:04][CashTab Unit Tests] <Tx /> slpv1 fungible token MINT
[05:44:04][CashTab Unit Tests] <Tx /> slpv1 fungible token MINT with no token info in cache
[05:44:04][CashTab Unit Tests] <Tx /> Msg sent by ElectrumABC
[05:44:04][CashTab Unit Tests] <Tx /> Unknown App tx with long push in stackArray
[05:44:04][CashTab Unit Tests] <Tx /> Received ALP tx
[05:44:04][CashTab Unit Tests] <Tx /> Received ALP tx with token not in cache
[05:44:04][CashTab Unit Tests] <Tx /> Received Cashtab message
[05:44:04][CashTab Unit Tests] <Tx /> off-spec Cashtab msg
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Cashtab Msg building functions getCashtabMsgTargetOutput: Alphanumeric string
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Cashtab Msg building functions getCashtabMsgTargetOutput: String with emojis
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Cashtab Msg building functions getCashtabMsgTargetOutput: String of max length for Cashtab Msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: String exceeding max length for Cashtab Msg by 1 byte
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: non-string input
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Cashtab Msg building functions getCashtabMsgTargetOutput throws error for: Empty string
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput Airdrop with no optional msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput Airdrop with many spaces for optional msg treated as no optional msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput Airdrop with optional alphanumeric msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput Airdrop with optional emoji and special characters msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput Airdrop with optional msg of max allowable length
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput getAirdropTargetOutput throws error for: Invalid tokenId provided
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput getAirdropTargetOutput throws error for: Airdrop msg exceeding max length for airdrop msg by 1 byte
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods getAirdropTargetOutput getAirdropTargetOutput throws error for: non-string input for airdrop msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Alias registration target output building functions getAliasTargetOutput: Valid alias to p2pkh address
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Alias registration target output building functions getAliasTargetOutput: Valid alias to p2sh address
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Alias registration target output building functions getAliasTargetOutput throws error for: Invalid alias
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Alias registration target output building functions getAliasTargetOutput throws error for: Invalid address
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with emoji
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with emoji and text
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with special characters
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with Korean text
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with Arabic text
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with Chinese text
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alias with mixed foreign alphabets and emoji
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount: Alphanumeric valid v0 alias
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines byte count of user input alias registrations getAliasByteCount throws error for: non-text input
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: a single emoji
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with characters and emojis
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with special characters
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: msg input with a mixture of symbols, multilingual characters and emojis
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: Alphanumeric string
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: String with emojis
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount: String of max length for Cashtab Msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Determines bytecount of user input Cashtab Msg getCashtabMsgByteCount throws error for: non-text input
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Build target output for opreturn as bip21 param getOpreturnParamTargetOutput: Valid opreturn param input
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Build target output for opreturn as bip21 param getOpreturnParamTargetOutput: Max length for opreturn param
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Build target output for opreturn as bip21 param getOpreturnParamTargetOutput throws error for: Invalid opreturn param input
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and raw hex for an SLP tx
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and decoded message for a valid Cashtab msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and decoded message for an invalid Cashtab msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and decoded message for an encrypted Cashtab msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and tokenId for a valid airdrop with no msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and tokenId for a valid airdrop with msg
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and raw hex for invalid airdrop
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and raw hex for valid alias registration
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns protocol identifier and raw hex for invalid alias registration
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Valid paybutton with data and nonce
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Valid paybutton with no data and nonce
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Valid paybutton with data and no nonce
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Valid empty paybutton
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Invalid paybutton
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Valid eCash chat
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Invalid eCash chat
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw: Returns unknown for unknown OP_RETURN
[05:44:04][CashTab Unit Tests] Cashtab opreturn methods Parse op_return_raw input for display on Send screen parseOpReturnRaw throws error for: Throws error if op_return_raw is invalid OP_RETURN
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Receive /> Renders as expected on desktop, including copy paste functionality of clicking on the QR code
[05:44:04][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of expected width for smallest supported mobile view
[05:44:04][CashTab Unit Tests] <Receive /> Renders the Receive screen with QR code of size that is fully viewable in extension dimensions
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered
[05:44:04][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered when pending list is empty
[05:44:04][CashTab Unit Tests] <Alias /> Registered and Pending Aliases are correctly rendered when registered list is empty
[05:44:04][CashTab Unit Tests] <Alias /> Registered and Pending lists still renders when aliasValidationError is populated and aliasServerError is false
[05:44:04][CashTab Unit Tests] <Alias /> Registered and Pending lists do not render when aliasValidationError is false and aliasServerError is populated
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <BalanceHeader /> Renders the loader if balanceSats is not an integer
[05:44:04][CashTab Unit Tests] <BalanceHeader /> Renders the BalanceHeader component correctly with default locale en-US
[05:44:04][CashTab Unit Tests] <BalanceHeader /> Renders the BalanceHeader component correctly with fr-FR locale
[05:44:04][CashTab Unit Tests] <BalanceHeader /> Balance is hidden if cashtabSettings.balanceVisible is false
[05:44:04][CashTab Unit Tests] <BalanceHeader /> Renders fiat price for a non-USD currency
[05:44:04][CashTab Unit Tests] <BalanceHeader /> Fiat price and forex are not displayed if fiatPrice is unavailable
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid.
[05:44:04][<SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid.] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:115:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid. Invalid bip21 string is ignored.
[05:44:04][<SendXec /> rendered with params in URL Legacy params. Address and value keys are set and valid. Invalid bip21 string is ignored.] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:186:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and value present as undefined
[05:44:04][<SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and value present as undefined] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:252:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and no value key present
[05:44:04][<SendXec /> rendered with params in URL Legacy params. Address field is populated + disabled while value field is empty + enabled if legacy url params have address defined and no value key present] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:318:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Params are ignored if only value param is present
[05:44:04][<SendXec /> rendered with params in URL Legacy params. Params are ignored if only value param is present] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:379:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params. Params are ignored if param is duplicated
[05:44:04][<SendXec /> rendered with params in URL Legacy params. Params are ignored if param is duplicated] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:440:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL Legacy params are not parsed as bip21 even if the bip21 param appears in the string
[05:44:04][<SendXec /> rendered with params in URL Legacy params are not parsed as bip21 even if the bip21 param appears in the string] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:505:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL bip21 param - valid bip21 param with amount and op_return_raw is parsed as expected
[05:44:04][<SendXec /> rendered with params in URL bip21 param - valid bip21 param with amount and op_return_raw is parsed as expected] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:575:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL bip21 param - an invalid bip21 param shows validation errors but cannot be changed
[05:44:04][<SendXec /> rendered with params in URL bip21 param - an invalid bip21 param shows validation errors but cannot be changed] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:687:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> rendered with params in URL No params. Send screen loads normally with no rendered input.
[05:44:04][<SendXec /> rendered with params in URL No params. Send screen loads normally with no rendered input.] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendByUrlParams.test.js:757:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address if all utxos are mature coinbase utxos
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address with an OP_RETURN output
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2pkh address with an OP_RETURN output at index 0
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1000 satoshis with 1 change output at 1 sat/byte to p2sh address
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1000 satoshis with 1 change output at 10 sat/byte
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1 satoshi per byte tx with no change outputs
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1 satoshi per byte tx with no change outputs from a wallet with utxos at many addresses
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 1 satoshi per byte tx broadcast actually broadcast with this function
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: No precision error using JS Number on utxo with highest theoretically possible value
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 15000 satoshis with 1 change output at 1 sat/byte to 5 p2pkh addresses
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: 15000 satoshis with 1 change output at 1 sat/byte to 5 p2sh outputs
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: Sending below dust threshold
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: Sending above wallet balance
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: Sending within wallet balance but insufficient to cover fee
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: Attempting to create a tx with fee rate below 1 sat/byte
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: Tx with utxos for which the wallet has no private keys
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: throws broadcast error from the node
[05:44:04][CashTab Unit Tests] We can broadcast XEC transactions sendXec: Insufficient balance due to immature coinbase utxos
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Airdrop
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Multisend format with extra space around address and value
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: One address in multi format
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs: Multisend including a non-integer JS result
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Invalid multisend input (dust)
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Too many decimal places
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Use of comma as decimal place marker
[05:44:04][CashTab Unit Tests] Forming multisend targetOutputs getMultisendTargetOutputs throws error for: Too many commas on one line
[05:44:04][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with no coinbase utxos returned unchanged
[05:44:04][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with immature coinbase utxo returned without immature coinbase utxo
[05:44:04][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: Array with some immature coinbase utxos and some mature coinbase utxos returned without immature coinbase utxo
[05:44:04][CashTab Unit Tests] Ignore unspendable coinbase utxos ignoreUnspendableUtxos: If blockheight is zero, all coinbase utxos are removed
[05:44:04][CashTab Unit Tests] We can create and broadcast SLP v1 SEND and BURN txs from utxos of nng or in-node chronik shape Build and broadcast an SLP V1 SEND and BURN tx from in-node chronik-client utxos: SLP send and burn with token change
[05:44:04][CashTab Unit Tests] We can create and broadcast SLP v1 SEND and BURN txs from utxos of nng or in-node chronik shape Build and broadcast an SLP V1 SEND and BURN tx from in-node chronik-client utxos: SLP send and BURN with no token change
[05:44:04][CashTab Unit Tests] We can create and broadcast SLP v1 SEND and BURN txs from utxos of nng or in-node chronik shape Build and broadcast an SLP V1 SEND and BURN tx from in-node chronik-client utxos: SLP max send tx using all available input utxos
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] queryAliasServer() correctly throws a network error for server downtime or a malformed fetch url
[05:44:04][CashTab Unit Tests] queryAliasServer() correctly returns an array of alias objects for a valid eCash address that has registered aliases
[05:44:04][CashTab Unit Tests] queryAliasServer() correctly returns an array of alias objects for a valid prefix-less eCash address that has registered aliases
[05:44:04][CashTab Unit Tests] queryAliasServer() returns an empty array for a valid eCash address with no aliases
[05:44:04][CashTab Unit Tests] queryAliasServer() throws an error for an invalid eCash address
[05:44:04][CashTab Unit Tests] queryAliasServer() returns an alias object for a registered alias
[05:44:04][CashTab Unit Tests] queryAliasServer() returns an api error for a non-alphanumeric alias
[05:44:04][CashTab Unit Tests] queryAliasServer() returns a valid object for an unregistered alias
[05:44:04][CashTab Unit Tests] queryAliasServer() returns an error for an alias longer than 21 characters
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with an input of 0
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with zero XEC balance input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with a small XEC balance input with 2+ decimal figures
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with 1 Million XEC balance input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with 1 Billion XEC balance input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with total supply as XEC balance input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with > total supply as XEC balance input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with no balance
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with null input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with undefined as input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatBalance with non-numeric input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions Accepts a valid unix timestamp
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions Accepts an empty string and generates a new timestamp
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions Accepts no parameter and generates a new timestamp
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions Accepts 'undefined' as a parameter and generates a new date
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions Rejects an invalid string containing letters.
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions Rejects an invalid string containing numbers.
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with zero XEC balance input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with a small XEC balance input with 2+ decimal figures
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with a large XEC balance input with 2+ decimal figures
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with no balance
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with null input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions test formatFiatBalance with undefined input
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: 9-decimal token
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Max possible eToken qty
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Max possible eToken qty with decimals
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: One less than max possible eToken qty with decimals
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: A pretty normal token quantity
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Smallest possible eToken quantity
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Smallest possible eToken quantity, but French
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: One less than max possible eToken qty with decimals, but french
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Locale with no thousands separator
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Locale with multibyte thousands separator works as this is still string length 1
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format decimalized token strings for userLocale decimalizedTokenQtyToLocaleFormat: Locale with multibyte thousands separator works as this is still string length 1
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance over 1 trillion XEC (10 trillion)
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance of exactly 1 trillion XEC
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance exceeding 1 billion XEC (10 billion)
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance exactly 1 billion XEC
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance exceeding 1 million XEC (10 million)
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance of exactly 1 million XEC
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance exceeding 1 thousand XEC (10 thousand)
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance of exactly 1 thousand XEC
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance less than 1 thousand XEC
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance less than 1 thousand XEC, but french
[05:44:04][CashTab Unit Tests] Correctly executes formatting functions We can format an XEC balance toFormattedXec: Balance less than 1 thousand XEC, but arabic
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <CreateToken /> If wallet has sufficient XEC, renders CreateTokenForm
[05:44:04][CashTab Unit Tests] <CreateToken /> If wallet has insufficient XEC, renders component but does not render CreateTokenForm
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <CreateTokenForm /> User can input valid token parameters, generate a token, and view a success notification
[05:44:04][CashTab Unit Tests] <CreateTokenForm /> User can create a token with a mint baton
[05:44:04][<CreateTokenForm /> User can create a token with a mint baton] Error: Unable to find an element with the text: Token created!. 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-imABML bjDfgL" > <div class="Toastify" > <div class="Toastify__toast-container Toastify__toast-container--top-right sc-hUfwpO ffGmZy" > <div class="Toastify__toast Toastify__toast-theme--light Toastify__toast--error Toastify__toast--close-on-click Toastify--animate Toastify__bounce-enter--top-right" data-in="true" id="2" > <div class="Toastify__toast-body" role="alert" > <div class="Toastify__toast-icon Toastify--animate-icon Toastify__zoom-enter" > <svg fill="var(--toastify-icon-color-error)" height="100%" viewBox="0 0 24 24" width="100%" > <path d="M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z" /> </svg> </div> <div> TypeError: Cannot read properties of undefined (reading 'txid') </div> </div> <button aria-label="close" class="Toastify__close-button Toastify__close-button--light" type="button" > <svg aria-hidden="true" viewBox="0 0 14 16" > <path d="M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z" fill-rule="evenodd" /> </svg> </button> <div class="Toastify__progress-bar--wrp" data-hidden="false" > <div class="Toastify__progress-bar--bg Toastify__progress-bar-theme--light Toastify__progress-bar--error" /> <div aria-hidden="false" aria-label="notification timer" class="Toastify__progress-bar Toastify__progress-bar--animated Toastify__progress-bar-theme--light Toastify__progress-bar--error" role="progressbar" style="animation-duration: 5000ms; animation-play-state: paused;" /> </div> </div> </div> </div> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <h3 class="sc-cpmLhU eXqAdW" > Create a Token </h3> <div class="sc-eLExRp bgwwyC" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="name" placeholder="Enter a name for your token" value="test token" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="ticker" placeholder="Enter a ticker for your token" value="TKE" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="decimals" placeholder="Enter number of decimal places" value="2" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="initialQty" placeholder="Enter the supply of your token" step="0.01" type="number" value="600000" /> <button class="sc-btzYZH sc-lhVmIH igbjWn" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="url" placeholder="Enter a website for your token" value="https://www.cashtab.com" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-cbkKFq fVCCdz" > <div class="sc-exAgwC drEAUM" title="Toggle Mint Baton" > <div class="sc-cQFLBn jsfNtc" > <input class="sc-lkqHmb caMISY" id="Toggle Mint Baton" name="Toggle Mint Baton" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Mint Baton" > <span class="sc-daURTG cgTIPi" data-off="Fixed" data-on="Variable" /> <span class="sc-bXGyLb fnwxeq" /> </label> </div> </div> <div class="sc-krvtoX euyuAt" > Token supply </div> </div> <form class="sc-esjQYD eYfPjN" id="form-file-upload" > <input class="sc-kfGgVZ jXdKYX" id="input-file-upload" name="Cashtab Dragger" type="file" /> <label class="sc-kIPQKe fhMXyf" for="input-file-upload" id="label-file-upload" > <div class="sc-RefOD kzCQXs" > <p class="sc-ibxdXY clQDsv" > Drag and drop a png or jpg for your token icon </p> <div class="sc-eXEjpC jrxrPg" > or click to upload </div> </div> </label> </form> <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 30px;" > Create eToken </button> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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.findByText (/work/cashtab/src/components/Etokens/__tests__/CreateTokenForm.test.js:196:29)
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon successfully signing a message
[05:44:04][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon successfully verifying a message
[05:44:04][<SignVerifyMsg /> Notification is rendered upon successfully verifying a message] Error: Unable to find an element with the placeholder text of: Enter message to verify Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> <div class="sc-cJOK kcKPi" > Sign & Verify Msg <svg class="sc-htpNat bPFBeM" /> </div> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-iomxrj giMLcr" title="Sign & Verify" > <div class="sc-dvCyap cXAUgX" > <div class="sc-exAgwC drEAUM" title="Toggle Sign Verify" > <div class="sc-cQFLBn jsfNtc" > <input checked="" class="sc-lkqHmb caMISY" id="Toggle Sign Verify" name="Toggle Sign Verify" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Sign Verify" > <span class="sc-daURTG bTGtBD" data-off="✅ Verify" data-on="✍️ Sign" /> <span class="sc-bXGyLb iIMeCD" /> </label> </div> </div> </div> <div class="sc-dvCyap cXAUgX" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="msgToSign" placeholder="Enter message to sign" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> <div class="sc-gzOgki jEvEhY" > <span class="sc-dfVpRl cYTFSG" > 0 </span> / 200 </div> </div> </div> </div> <div class="sc-dvCyap cXAUgX" > <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" > Sign </button> </div> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB hQCwhv" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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.findByPlaceholderText (/work/cashtab/src/components/SignVerifyMsg/__tests__/SignVerifyMsg.test.js:137:26)
[05:44:04][CashTab Unit Tests] <SignVerifyMsg /> Notification is rendered upon signature verification error
[05:44:04][<SignVerifyMsg /> Notification is rendered upon signature verification error] TestingLibraryElementError: Unable to find an element with the placeholder text of: Enter message to verify Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> <div class="sc-cJOK kcKPi" > Sign & Verify Msg <svg class="sc-htpNat bPFBeM" /> </div> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-iomxrj giMLcr" title="Sign & Verify" > <div class="sc-dvCyap cXAUgX" > <div class="sc-exAgwC drEAUM" title="Toggle Sign Verify" > <div class="sc-cQFLBn jsfNtc" > <input checked="" class="sc-lkqHmb caMISY" id="Toggle Sign Verify" name="Toggle Sign Verify" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Sign Verify" > <span class="sc-daURTG bTGtBD" data-off="✅ Verify" data-on="✍️ Sign" /> <span class="sc-bXGyLb iIMeCD" /> </label> </div> </div> </div> <div class="sc-dvCyap cXAUgX" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="msgToSign" placeholder="Enter message to sign" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> <div class="sc-gzOgki jEvEhY" > <span class="sc-dfVpRl cYTFSG" > 0 </span> / 200 </div> </div> </div> </div> <div class="sc-dvCyap cXAUgX" > <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" > Sign </button> </div> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB hQCwhv" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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/SignVerifyMsg/__tests__/SignVerifyMsg.test.js:188:20)
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Home /> Renders the loading component while loading, then the Home screen
[05:44:04][CashTab Unit Tests] <Home /> Renders the Home screen with API error
[05:44:04][CashTab Unit Tests] <Home /> Renders backup warning and QR Code if user loads with a new wallet
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Navigator is undefined
[05:44:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Navigator.userAgentData is undefined
[05:44:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Desktop device on browser with userAgentData support
[05:44:04][CashTab Unit Tests] Cashtab helper functions Detect mobile or desktop devices isMobile: Mobile device on browser with userAgentData support
[05:44:04][CashTab Unit Tests] Cashtab helper functions Get user locale getUserLocale: navigator is undefined
[05:44:04][CashTab Unit Tests] Cashtab helper functions Get user locale getUserLocale: navigator.language is undefined
[05:44:04][CashTab Unit Tests] Cashtab helper functions Get user locale getUserLocale: navigator.language is defined and not the default
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabCache to and from JSON for storage and in-app use cashtabCacheToJSON and storedCashtabCacheToMap: Converts cashtabCache with populated token cache to JSON for storage
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabCache to and from JSON for storage and in-app use cashtabCacheToJSON and storedCashtabCacheToMap: Converts cashtabCache with empty token cache to JSON for storage
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallet to and from JSON for storage and in-app use cashtabWalletToJSON and cashtabWalletFromJSON: Newly created Cashtab wallet
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallet to and from JSON for storage and in-app use cashtabWalletToJSON and cashtabWalletFromJSON: Pre-2.1.0 wallet is unchanged
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallet to and from JSON for storage and in-app use cashtabWalletToJSON and cashtabWalletFromJSON: Pre-2.9.0 wallet is unchanged
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallet to and from JSON for storage and in-app use cashtabWalletToJSON and cashtabWalletFromJSON: Cashtab wallet with multiple paths
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallet to and from JSON for storage and in-app use cashtabWalletToJSON and cashtabWalletFromJSON: Cashtab wallet with multiple paths and tokens in state
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallets (array) to and from JSON for storage and in-app use cashtabWalletsToJSON and cashtabWalletsFromJSON: Newly created Cashtab wallets
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallets (array) to and from JSON for storage and in-app use cashtabWalletsToJSON and cashtabWalletsFromJSON: Pre-2.1.0 wallets are unchanged
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallets (array) to and from JSON for storage and in-app use cashtabWalletsToJSON and cashtabWalletsFromJSON: Pre-2.9.0 wallets are unchanged
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallets (array) to and from JSON for storage and in-app use cashtabWalletsToJSON and cashtabWalletsFromJSON: Cashtab wallets with multiple paths
[05:44:04][CashTab Unit Tests] Cashtab helper functions Converts cashtabWallets (array) to and from JSON for storage and in-app use cashtabWalletsToJSON and cashtabWalletsFromJSON: Cashtab wallets with multiple paths and tokens in state
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Contacts /> We can add, delete, rename, contacts from the Configure screen, and add a savedWallet as a contact
[05:44:04][CashTab Unit Tests] <Contacts /> We can send a tx to an address in contacts
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] sumOneToManyXec() correctly parses the value for a valid one to many send XEC transaction
[05:44:04][CashTab Unit Tests] sumOneToManyXec() correctly parses the value for a valid one to many send XEC transaction with decimals
[05:44:04][CashTab Unit Tests] sumOneToManyXec() returns NaN for an address and value array that is partially typed or has invalid format
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <ScanQRCode /> Renders the modal on load if loadWithCameraOpen is true
[05:44:04][CashTab Unit Tests] <ScanQRCode /> Does not render the modal on load if loadWithCameraOpen is false
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <QRCode /> QRCode copying ecash address
[05:44:04][CashTab Unit Tests] <QRCode /> QRCode copying eToken address
[05:44:04][CashTab Unit Tests] <QRCode /> QRCode will render without address
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx: We can calculate an airdrop for holders of a given tokenId and no ignored addresses
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx: We can calculate an airdrop for holders of a given tokenId and one ignored address
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx: We can calculate an airdrop for holders of a given tokenId and two ignored addresses
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx: We can calculate an airdrop for holders of a given tokenId with no ignored addresses and a specified minTokenQtyUndecimalized that renders only one address eligible
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx: We can calculate an airdrop for holders of a given tokenId with no ignored addresses and a specified minTokenQtyUndecimalized that renders some addresses eligible
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx: We can calculate an airdrop for holders of a given tokenId with an ignored addresses and a specified minTokenQtyUndecimalized that renders some addresses eligible
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx throws error for: We throw expected error if no tokens are held at p2pkh or p2sh addresses
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx throws error for: We throw expected error if all eligible addresses are excluded
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for a standard (prorata) airdrop getAirdropTx throws error for: We throw expected error if all eligible recipients would receive dust
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx: We can calculate an airdrop for holders of a given tokenId and no ignored addresses
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx: We can calculate an airdrop for holders of a given tokenId and one ignored address
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx: We can calculate an airdrop for holders of a given tokenId and two ignored addresses
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx: We can calculate an airdrop for holders of a given tokenId with no ignored addresses and a specified minTokenQtyUndecimalized that renders only one address eligible
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx: We can calculate an airdrop for holders of a given tokenId with no ignored addresses and a specified minTokenQtyUndecimalized that renders some addresses eligible
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx: We can calculate an airdrop for holders of a given tokenId with an ignored addresses and a specified minTokenQtyUndecimalized that renders some addresses eligible
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx throws error for: We throw expected error if no tokens are held at p2pkh or p2sh addresses
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx throws error for: We throw expected error if all eligible addresses are excluded
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx throws error for: We throw expected error if all eligible addresses are excluded
[05:44:04][CashTab Unit Tests] Cashtab airdrop methods Gets csv list of airdrop recipients address and amounts for an equal airdrop getEqualAirdropTx throws error for: We throw expected error if anticipated airdrop amount is less than dust
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Configure /> We do not see the camera auto-open setting in the config screen on a desktop device
[05:44:04][CashTab Unit Tests] <Configure /> We do see the camera auto-open setting in the config screen on a mobile device
[05:44:04][CashTab Unit Tests] <Configure /> Setting "Send Confirmations" settings will show send confirmations
[05:44:04][<Configure /> Setting "Send Confirmations" settings will show send confirmations] TestingLibraryElementError: Unable to find an element with the title: Toggle Multisend. Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> <div class="sc-cJOK kcKPi" > Settings <svg title="settings" /> </div> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-fHxwqH cUqxnu" title="Settings" > <div class="sc-dxZgTM hgntLi" > <div class="sc-jKJlTe gnzKNV" > ℹ️ Backup wallet has moved <br /> <br /> Go to the <a href="/backup" > Backup Wallet </a> screen to see your seed phrase </div> <div class="sc-jKJlTe gnzKNV" > ℹ️ Contacts have moved to the <a href="/contacts" > Contacts </a> screen </div> <div class="sc-jKJlTe gnzKNV" > ℹ️ Wallets have moved to the <a href="/wallets" > Wallets </a> screen </div> </div> <div class="sc-cEvuZ... 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.getByTitle (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:184:33)
[05:44:04][CashTab Unit Tests] <Configure /> Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min
[05:44:04][<Configure /> Setting "ABSOLUTE MINIMUM fees" settings will reduce fees to absolute min] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 12px;" > Send </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qphlhe78677sz227k83hrh542qeehh8el5lcjwk72y" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="0.01" type="number" value="" /> <select class="sc-elJkPf sc-jtRfpW fZHEnY" data-testid="currency-select-dropdown" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH fdrRQD" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 55 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 0.00 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Configure/__tests__/Configure.test.js:312:33)
[05:44:04][CashTab Unit Tests] <Configure /> We can choose a new fiat currency
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <CashtabTestWrapper /> With default props, renders App component
[05:44:04][<CashtabTestWrapper /> With default props, renders App component] Error: Unable to find an element with the text: Error in chronik connection. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible. Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-esOvli ipleQD" title="Tx History" > <div class="sc-hSdWYo iMQLbE" > <div class="sc-eHgmQL AexVP" > <div class="sc-cvbbAY dIAmjV" type="Received" > <div class="sc-jWBwVP fnOolC" > <svg title="tx-received" /> <div class="sc-cMljjf cjdDdM" > <div class="sc-jAaTju eNIYIZ" > Received from <a class="sc-fBuWsC cLgxJj" href="https://explorer.e.cash/address/ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" rel="noreferrer" target="_blank" > qp8...gg6 </a> </div> <div class="sc-jDwBTQ BuxYk" > Apr 11, 2024, 05:43:50 </div> </div> </div> <div class="sc-gPEVay kQcCGh"... at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByText (/work/cashtab/src/components/App/fixtures/__tests__/CashtabTestWrapper.test.js:82:26)
[05:44:04][CashTab Unit Tests] <CashtabTestWrapper /> We can render other pages by passing the route
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Airdrop /> We can send a pro-rata airdrop and equal tx to a tokenId not in our cache using custom settings
[05:44:04][<Airdrop /> We can send a pro-rata airdrop and equal tx to a tokenId not in our cache using custom settings] Error: Unable to find an element with the placeholder text of: /If more than one XEC address/ Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> <div class="sc-cJOK kcKPi" > Airdrop <svg title="tx-airdrop" /> </div> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bmyXtO boQCBU" > <div class="sc-dEoRIm hoBTqo" > <div class="sc-gxMtzJ fJHYUt" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="tokenId" placeholder="Enter the eToken ID" value="50d8292c6255cda7afc6c8566fed3cf42a2794e9619740fe8f4c95431271410e" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-gxMtzJ fJHYUt" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="totalAirdrop" placeholder="Enter the total XEC airdrop" value="5000" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Communism" > <div class="sc-cQFLBn hqXCIg" > <input checked="" class="sc-lkqHmb caMISY" id="Toggle Communism" name="Toggle Communism" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Communism" > <span class="sc-daURTG cdvsTX" data-off="" data-on="Pro-Rata" /> <span class="sc-bXGyLb ewgUFr" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Airdrop scaled to token balance </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="ignoreOwnAddress" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="ignoreOwnAddress" name="ignoreOwnAddress" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="ignoreOwnAddress" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Ignore my own address </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Ignore Mint Address" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Ignore Mint Address" name="Toggle Ignore Mint Address" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Ignore Mint Address" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Ignore eToken minter address </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Minimum Token Balance" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Minimum Token Balance" name="Toggle Minimum Token Balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Minimum Token Balance" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Minimum eToken holder balance </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Ignore Custom Addresses" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Ignore Custom Addresses" name="Toggle Ignore Custom Addresses" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Ignore Custom Addresses" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Ignore custom addresses </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <button class="sc-gqPbQI sc-bMVAic PNTzB" > Calculate Airdrop </button> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-ebFjAB ivydVU" > One to Many Airdrop Payment Outputs <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="airdropRecipients" placeholder="Please input parameters above." > ecash:qzj5zu6fgg8v2we82gh76xnrk9njcreglum9ffspnr, 150 ecash:qz2708636snqhsxu8wnlka78h6fdp77ar59jrf5035, 50 ecash:qr204yfphngxthvnukyrz45u7500tf60vyqspva5a6, 150 ecash:qrq64hyel9hulnl9vsk29xjnuuqlpwqpcv6mk9pqly, 50 ecash:qzn3gqf7vvm2qdu2rac6m6r4kgfcsyaras7jfqja3m, 200 ecash:qpmytrdsakt0axrrlswvaj069nat3p9s7cjctmjasj, 4400 </textarea> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <a class="sc-hORach sc-GMQeP fwgtCV" href="/send" type="text" > Copy to Send screen </a> </div> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB hQCwhv" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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.findByPlaceholderText (/work/cashtab/src/components/Airdrop/__tests__/Airdrop.test.js:159:26)
[05:44:04][CashTab Unit Tests] <Airdrop /> We can ignore addresses with less than a token balance for a token with decimals
[05:44:04][<Airdrop /> We can ignore addresses with less than a token balance for a token with decimals] Error: Unable to find an element with the placeholder text of: /Minimum eToken balance/ Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> <div class="sc-cJOK kcKPi" > Airdrop <svg title="tx-airdrop" /> </div> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bmyXtO boQCBU" > <div class="sc-dEoRIm hoBTqo" > <div class="sc-gxMtzJ fJHYUt" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="tokenId" placeholder="Enter the eToken ID" value="bef614aac85c0c866f4d39e4d12a96851267d38d1bca5bdd6488bbd42e28b6b1" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-gxMtzJ fJHYUt" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm hTsNTL" name="totalAirdrop" placeholder="Enter the total XEC airdrop" value="500000" /> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Communism" > <div class="sc-cQFLBn hqXCIg" > <input checked="" class="sc-lkqHmb caMISY" id="Toggle Communism" name="Toggle Communism" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Communism" > <span class="sc-daURTG cdvsTX" data-off="" data-on="Pro-Rata" /> <span class="sc-bXGyLb ewgUFr" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Airdrop scaled to token balance </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="ignoreOwnAddress" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="ignoreOwnAddress" name="ignoreOwnAddress" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="ignoreOwnAddress" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Ignore my own address </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Ignore Mint Address" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Ignore Mint Address" name="Toggle Ignore Mint Address" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Ignore Mint Address" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Ignore eToken minter address </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Minimum Token Balance" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Minimum Token Balance" name="Toggle Minimum Token Balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Minimum Token Balance" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Minimum eToken holder balance </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-jtggT hpbNWt" > <div class="sc-exAgwC drEAUM" title="Toggle Ignore Custom Addresses" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Ignore Custom Addresses" name="Toggle Ignore Custom Addresses" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Ignore Custom Addresses" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Ignore custom addresses </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <button class="sc-gqPbQI sc-bMVAic PNTzB" > Calculate Airdrop </button> </div> <div class="sc-dEoRIm hoBTqo" > <div class="sc-ebFjAB ivydVU" > One to Many Airdrop Payment Outputs <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="airdropRecipients" placeholder="Please input parameters above." > ecash:qp6qkpeg5xmpcqtu6uc5qkhzexg4sq009sfeekcfk2, 499894.34 ecash:qpmytrdsakt0axrrlswvaj069nat3p9s7cjctmjasj, 94.15 ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6, 11.49 </textarea> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> <div class="sc-dEoRIm hoBTqo" > <a class="sc-hORach sc-GMQeP fwgtCV" href="/send" type="text" > Copy to Send screen </a> </div> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB hQCwhv" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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.findByPlaceholderText (/work/cashtab/src/components/Airdrop/__tests__/Airdrop.test.js:263:26)
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <SendToken /> Renders the SendToken screen with send address input
[05:44:04][CashTab Unit Tests] <SendToken /> Accepts a valid ecash: prefixed address
[05:44:04][CashTab Unit Tests] <SendToken /> Accepts a valid etoken: prefixed address
[05:44:04][CashTab Unit Tests] <SendToken /> Accepts a valid alias
[05:44:04][CashTab Unit Tests] <SendToken /> Displays a validation error for an invalid address
[05:44:04][CashTab Unit Tests] <SendToken /> Displays a validation error for an alias without .xec suffix
[05:44:04][CashTab Unit Tests] <SendToken /> Displays a validation error for valid alias that has not yet been registered
[05:44:04][CashTab Unit Tests] <SendToken /> Displays expected error if alias server gives a bad response
[05:44:04][CashTab Unit Tests] <SendToken /> Displays a validation error if the user includes any query string
[05:44:04][CashTab Unit Tests] <SendToken /> Renders the send token notification upon successful broadcast
[05:44:04][<SendToken /> Renders the send token notification upon successful broadcast] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 24px;" > Send BEAR </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-kUaPvJ foyoyJ" > 1 BearNip ( BEAR ) </div> <div class="sc-hmXxxW hLuGIL" > <div class="sc-dliRfk hZcdiU" > <button class="sc-giadOv guiCof" > <img alt="icon for 3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109" height="128" src="https://icons.etokens.cash/128/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109.png" width="128" /> </button> </div> <div class="sc-dliRfk hZcdiU" > <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > Token Id: </div> <div class="sc-dliRfk hZcdiU" > <a href="https://explorer.e.cash/tx/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109" rel="noopener noreferrer" target="_blank" > 3fe ... 109 </a> </div> <div class="sc-dliRfk hZcdiU" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > decimals: </div> <div class="sc-dliRfk hZcdiU" > 0 </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > created: </div> <div class="sc-dliRfk hZcdiU" > Apr 11, 2024 </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > Genesis Qty: </div> <div class="sc-dliRfk hZcdiU" > 4,444 </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > Supply: </div> <div class="sc-dliRfk hZcdiU" > Error fetching supply </div> </div> </div> </div> <div class="sc-fONwsr iTwBqV" > <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="send-switch" > <div class="sc-cQFLBn gTEPaz" > <input checked="" class="sc-lkqHmb caMISY" id="send-switch" name="send-switch" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="send-switch" > <span class="sc-daURTG cgTIPi" data-off="➡️" data-on="➡️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Send BearNip ( BEAR ) </div> </div> <div class="sc-VJcYb hvrWIn" > <div class="sc-ipXKqB fTPQgE" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-iGrrsa efpJkV" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> </div> <div class="sc-VJcYb hvrWIn" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="1" type="number" value="" /> <button class="sc-btzYZH sc-lhVmIH igbjWn" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> <div class="sc-VJcYb hvrWIn" > <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 24px;" > Send BEAR </button> </div> <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="airdrop-switch" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="airdrop-switch" name="airdrop-switch" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="airdrop-switch" > <span class="sc-daURTG cgTIPi" data-off=" " data-on=" " /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Airdrop XEC to BEAR holders </div> </div> <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="Toggle Burn" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Burn" name="Toggle Burn" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Burn" > <span class="sc-daURTG cgTIPi" data-off=" " data-on=" " /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Burn BEAR </div> </div> <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="Toggle Mint" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Mint" name="Toggle Mint" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Mint" > <span class="sc-daURTG cgTIPi" data-off="⚗️" data-on="⚗️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Mint (disabled, no mint baton in wallet) </div> </div> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:458:33)
[05:44:04][CashTab Unit Tests] <SendToken /> Renders the burn token success notification upon successful burn tx broadcast
[05:44:04][<SendToken /> Renders the burn token success notification upon successful burn tx broadcast] TestingLibraryElementError: Unable to find an element with the placeholder text of: Burn Amount Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-kUaPvJ foyoyJ" > 1 BearNip ( BEAR ) </div> <div class="sc-hmXxxW hLuGIL" > <div class="sc-dliRfk hZcdiU" > <button class="sc-giadOv guiCof" > <img alt="icon for 3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109" height="128" src="https://icons.etokens.cash/128/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109.png" width="128" /> </button> </div> <div class="sc-dliRfk hZcdiU" > <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > Token Id: </div> <div class="sc-dliRfk hZcdiU" > <a href="https://explorer.e.cash/tx/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109" rel="noopener noreferrer" target="_blank" > 3fe ... 109 </a> </div> <div class="sc-dliRfk hZcdiU" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > decimals: </div> <div class="sc-dliRfk hZcdiU" > 0 </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > created: </div> <div class="sc-dliRfk hZcdiU" > Apr 11, 2024 </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > Genesis Qty: </div> <div class="sc-dliRfk hZcdiU" > 4,444 </div> </div> <div class="sc-kLIISr dOonvw" > <div class="sc-qrIAp hJjALr" > Supply: </div> <div class="sc-dliRfk hZcdiU" > Error fetching supply </div> </div> </div> </div> <div class="sc-fONwsr iTwBqV" > <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="send-switch" > <div class="sc-cQFLBn gTEPaz" > <input checked="" class="sc-lkqHmb caMISY" id="send-switch" name="send-switch" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="send-switch" > <span class="sc-daURTG cgTIPi" data-off="➡️" data-on="➡️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Send BearNip ( BEAR ) </div> </div> <div class="sc-VJcYb hvrWIn" > <div class="sc-ipXKqB fTPQgE" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-iGrrsa efpJkV" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> </div> <div class="sc-VJcYb hvrWIn" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="1" type="number" value="" /> <button class="sc-btzYZH sc-lhVmIH igbjWn" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> <div class="sc-VJcYb hvrWIn" > <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 24px;" > Send BEAR </button> </div> <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="airdrop-switch" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="airdrop-switch" name="airdrop-switch" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="airdrop-switch" > <span class="sc-daURTG cgTIPi" data-off=" " data-on=" " /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Airdrop XEC to BEAR holders </div> </div> <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="Toggle Burn" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Burn" name="Toggle Burn" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Burn" > <span class="sc-daURTG cgTIPi" data-off=" " data-on=" " /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Burn BEAR </div> </div> <div class="sc-iqzUVk blbJfl" > <div class="sc-exAgwC drEAUM" title="Toggle Mint" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Mint" name="Toggle Mint" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Mint" > <span class="sc-daURTG cgTIPi" data-off="⚗️" data-on="⚗️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-dxgOiQ imcdsa" > Mint (disabled, no mint baton in wallet) </div> </div> </div> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fysuvA" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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:494:32)
[05:44:04][CashTab Unit Tests] <SendToken /> Mint switch is disabled if no mint batons for this token in the wallet
[05:44:04][<SendToken /> Mint switch is disabled if no mint batons for this token in the wallet] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Mint"><div class="sc-cQFLBn gTEPaz"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Mint" name="Toggle Mint" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Mint"><span class="sc-daURTG cgTIPi" data-off="⚗️" data-on="⚗️" /><span class="sc-bXGyLb ehpwPH" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:533:50)
[05:44:04][CashTab Unit Tests] <SendToken /> We can mint an slpv1 token if we have a mint baton
[05:44:04][<SendToken /> We can mint an slpv1 token if we have a mint baton] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Mint"><div class="sc-cQFLBn gTEPaz"><input class="sc-lkqHmb caMISY" id="Toggle Mint" name="Toggle Mint" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Mint"><span class="sc-daURTG cgTIPi" data-off="⚗️" data-on="⚗️" /><span class="sc-bXGyLb ehpwPH" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:640:28)
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <Wallets /> We can add a savedWallet as a contact
[05:44:04][CashTab Unit Tests] <Wallets /> Confirm mocked bip39.generateMnemonic() returns the expected seed
[05:44:04][CashTab Unit Tests] <Wallets /> We can rename the active wallet or a saved wallet, we can add a wallet, we can import a wallet, we can delete a wallet
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <App /> Renders onboarding screen at home route if user has no wallet
[05:44:04][CashTab Unit Tests] <App /> Renders onboarding screen at Receive route if user has no wallet
[05:44:04][CashTab Unit Tests] <App /> Renders onboarding screen even on a bad route if user has no wallet
[05:44:04][CashTab Unit Tests] <App /> Renders 404 at bad route if user has a wallet
[05:44:04][CashTab Unit Tests] <App /> Navigation menu routes to expected components
[05:44:04][CashTab Unit Tests] <App /> Adding a contact to to a new contactList by clicking on tx history adds it to localforage and wallet context
[05:44:04][CashTab Unit Tests] <App /> Adding a contact to an existing contactList by clicking on tx history adds it to localforage and wallet context
[05:44:04][CashTab Unit Tests] <App /> A user with legacy blank contactList in localstorage is migrated on startup
[05:44:04][CashTab Unit Tests] <App /> Clicking "reply" on a Cashtab Msg correctly populates the SendXec to address and amount fields
[05:44:04][CashTab Unit Tests] <App /> If Cashtab starts up with some settings keys missing, the missing keys are migrated to default values
[05:44:04][CashTab Unit Tests] <App /> Wallet with easter egg token sees easter egg
[05:44:04][CashTab Unit Tests] <App /> If Cashtab starts with 1.5.* cashtabCache, it is wiped and migrated to 2.9.0 cashtabCache
[05:44:04][CashTab Unit Tests] <App /> A new user can import a mnemonic
[05:44:04][CashTab Unit Tests] <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[05:44:04][CashTab Unit Tests] <App /> Migrating from wallet/savedWallet keys (version < 1.6.0): A user with pre-2.1.0 valid wallets in savedWallets has them all migrated to new storage keys and new shape
[05:44:04][CashTab Unit Tests] <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with an invalid wallet stored at wallets key has that wallet migrated
[05:44:04][CashTab Unit Tests] <App /> Migrating (version >= 1.6.0 and < 2.1.0): A user with multiple invalid wallets stored at wallets key has them migrated
[05:44:04][CashTab Unit Tests] <App /> Cashtab version >= 1.6.0 and < 2.1.0: A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[05:44:04][CashTab Unit Tests] <App /> A user with all valid wallets stored at wallets key does not have any wallets migrated
[05:44:04][CashTab Unit Tests] <App /> Migrating (version < 2.9.0): A user with multiple invalid wallets stored at wallets key has them migrated
[05:44:04][CashTab Unit Tests] <App /> Migrating (version < 2.9.0): A user with an invalid Cashtab wallet as the active wallet is migrated on startup
[05:44:04][CashTab Unit Tests] <App /> If Cashtab starts with < 2.9.0 cashtabCache, it is wiped and migrated to 2.9.0 cashtabCache
[05:44:04][CashTab Unit Tests] <App /> We see a price notification if new price is at a new tens level in USD per 1,000,000 XEC, and a special notification if a zero is killed
[05:44:04][CashTab Unit Tests] <App /> We do not see price notifications if new price is at a new tens level in JPY per 1,000,000 XEC, because user fiat currency does not support zero killed notifications for JPY
[05:44:04][Step 1/1] CashTab Unit Tests
[05:44:04][CashTab Unit Tests] <SendXec /> Renders the SendXec screen with send address input
[05:44:04][<SendXec /> Renders the SendXec screen with send address input] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:109:55) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:540:9) at processTimers (node:internal/timers:514:7)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass valid address to Send To field
[05:44:04][<SendXec /> Pass valid address to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:163:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass valid alias to Send To field
[05:44:04][<SendXec /> Pass valid alias to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:234:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass an invalid address to Send To field and get a validation error
[05:44:04][<SendXec /> Pass an invalid address to Send To field and get a validation error] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:295:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a possibly valid alias without .xec suffix to Send To field and get expected error
[05:44:04][<SendXec /> Pass a possibly valid alias without .xec suffix to Send To field and get expected error] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:340:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid alias to Send To field that has not yet been registered and get expected error
[05:44:04][<SendXec /> Pass a valid alias to Send To field that has not yet been registered and get expected error] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:405:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Get expected error msg and send disabled if bad response from alias server
[05:44:04][<SendXec /> Get expected error msg and send disabled if bad response from alias server] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: false Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO beHQrQ" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:465:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount param to Send To field
[05:44:04][<SendXec /> Pass a valid address and bip21 query string with valid amount param to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:515:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid alias and bip21 query string with valid amount param to Send To field
[05:44:04][<SendXec /> Pass a valid alias and bip21 query string with valid amount param to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:586:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with invalid amount param (dust) to Send To field
[05:44:04][<SendXec /> Pass a valid address and bip21 query string with invalid amount param (dust) to Send To field] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=5" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX gPYHtZ" > <input class="sc-feJyhm sc-jwKygS bEyGJk" disabled="" name="amount" placeholder="Amount" step="0.01" type="number" value="5" /> <select class="sc-elJkPf sc-jtRfpW eESySn" data-testid="currency-select-dropdown" disabled="" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH kxNEsK" disabled="" > max </button> </div> <div class="sc-dqBHgY iKEgph" > Send amount must be at least 5.5 XEC </div> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 5 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 0.00 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:659:23)
[05:44:04][CashTab Unit Tests] <SendXec /> Valid address with valid bip21 query string with valid amount param rejected if amount exceeds wallet balance
[05:44:04][<SendXec /> Valid address with valid bip21 query string with valid amount param rejected if amount exceeds wallet balance] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6?amount=1000000" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX gPYHtZ" > <input class="sc-feJyhm sc-jwKygS bEyGJk" disabled="" name="amount" placeholder="Amount" step="0.01" type="number" value="1000000" /> <select class="sc-elJkPf sc-jtRfpW eESySn" data-testid="currency-select-dropdown" disabled="" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH kxNEsK" disabled="" > max </button> </div> <div class="sc-dqBHgY iKEgph" > Amount 1,000,000.00 XEC exceeds wallet balance of 9,513.12 XEC </div> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 1,000,000 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 30.00 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:709:23)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid alias and bip21 query string with invalid amount param (too many decimals) to Send To field
[05:44:04][<SendXec /> Pass a valid alias and bip21 query string with invalid amount param (too many decimals) to Send To field] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="chicken.xec?amount=500.123" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/ecash:qpmytrdsakt0axrrlswvaj069nat3p9s7cjctmjasj" rel="noreferrer" target="_blank" > ecash:qpmy...mjasj </a> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX gPYHtZ" > <input class="sc-feJyhm sc-jwKygS bEyGJk" disabled="" name="amount" placeholder="Amount" step="0.01" type="number" value="500.123" /> <select class="sc-elJkPf sc-jtRfpW eESySn" data-testid="currency-select-dropdown" disabled="" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH kxNEsK" disabled="" > max </button> </div> <div class="sc-dqBHgY iKEgph" > XEC transactions do not support more than 2 decimal places </div> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" disabled="" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO eVBwfd" disabled="" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 500.12 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 0.02 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:780:23)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid address and an invalid bip21 query string
[05:44:04][<SendXec /> Pass a valid address and an invalid bip21 query string] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:827:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with op_return_raw param to Send To field
[05:44:04][<SendXec /> Pass a valid address and bip21 query string with op_return_raw param to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:881:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount and op_return_raw params to Send To field
[05:44:04][<SendXec /> Pass a valid address and bip21 query string with valid amount and op_return_raw params to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:949:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Pass a valid address and bip21 query string with valid amount and invalid op_return_raw params to Send To field
[05:44:04][<SendXec /> Pass a valid address and bip21 query string with valid amount and invalid op_return_raw params to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1017:55)
[05:44:04][CashTab Unit Tests] <SendXec /> Clicking "Send" will send a valid tx with op_return_raw after entry of a valid address and bip21 query string with valid amount and op_return_raw params to Send To field
[05:44:04][<SendXec /> Clicking "Send" will send a valid tx with op_return_raw after entry of a valid address and bip21 query string with valid amount and op_return_raw params to Send To field] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1095:55)
[05:44:04][CashTab Unit Tests] <SendXec /> We can calculate max send amount with and without a cashtab msg, and send a max sat tx with a cashtab msg
[05:44:04][<SendXec /> We can calculate max send amount with and without a cashtab msg, and send a max sat tx with a cashtab msg] TestingLibraryElementError: Unable to find an element with the placeholder text of: Include a public Cashtab msg with this tx (max 215 bytes) Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="0.01" type="number" value="9509.26" /> <select class="sc-elJkPf sc-jtRfpW fZHEnY" data-testid="currency-select-dropdown" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH fdrRQD" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 9,509.26 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 0.29 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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__/SendXec.test.js:1230:20)
[05:44:04][CashTab Unit Tests] <SendXec /> If the user has minFeeSends set to true but no longer has the right token amount, the feature is disabled
[05:44:04][<SendXec /> If the user has minFeeSends set to true but no longer has the right token amount, the feature is disabled] Error: expect(received).toHaveProperty(path, value) Expected path: "disabled" Received path: [] Expected value: true Received value: <div class="sc-exAgwC drEAUM" title="Toggle Multisend"><div class="sc-cQFLBn cpPRCx"><input class="sc-lkqHmb caMISY" disabled="" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /><label class="sc-gojNiO eVBwfd" disabled="" for="Toggle Multisend"><span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /><span class="sc-bXGyLb irGXQC" /></label></div></div> at Object.toHaveProperty (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1331:55)
[05:44:04][CashTab Unit Tests] <SendXec /> We can send a tx with amount denominated in fiat currency
[05:44:04][<SendXec /> We can send a tx with amount denominated in fiat currency] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 12px;" > Send </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="0.01" type="number" value="" /> <select class="sc-elJkPf sc-jtRfpW fZHEnY" data-testid="currency-select-dropdown" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH kxNEsK" disabled="" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 0.21 USD </div> <div class="sc-kGXeez LHHXu" > = 7,000 XEC </div> </div> <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1465:20)
[05:44:04][CashTab Unit Tests] <SendXec /> We can send an XEC tx to multiple users
[05:44:04][<SendXec /> We can send an XEC tx to multiple users] TestingLibraryElementError: Found multiple elements with the role "button" and name `/Send/` Here are the matching elements: Ignored nodes: comments, script, style <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> Ignored nodes: comments, script, style <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)). Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="0.01" type="number" value="" /> <select class="sc-elJkPf sc-jtRfpW fZHEnY" data-testid="currency-select-dropdown" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH fdrRQD" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" > ecash:qz2708636snqhsxu8wnlka78h6fdp77ar59jrf5035, 20 ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6, 22 </textarea> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 0 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 0.00 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic fqAcII" disabled="" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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 getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:20:35) at getMultipleElementsFoundError (/work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:23:10) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:55:13 at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19 at Object.getByRole (/work/cashtab/src/components/Send/__tests__/SendXec.test.js:1519:23)
[05:44:04][CashTab Unit Tests] <SendXec /> If we type a Cashtab msg, then disable the switch, we send a tx without our typed Cashtab message
[05:44:04][<SendXec /> If we type a Cashtab msg, then disable the switch, we send a tx without our typed Cashtab message] TestingLibraryElementError: Unable to find an element with the placeholder text of: Include a public Cashtab msg with this tx (max 215 bytes) Ignored nodes: comments, script, style <body> <div> <div class="sc-imABML bjDfgL" > <div class="Toastify" /> <div class="sc-ejGVNB hUWUlX" > <div class="sc-iiUIRa cglRHQ" > <div class="sc-dRaagA gUAxPw" > <div class="sc-hgRTRy dMmGnV" > <img alt="cashtab" class="sc-iIHSe cLWfOl" src="test-file-stub" /> </div> <div class="sc-kAzzGY iWUdLK" title="Wallet Info" > <div class="sc-fnwBNb fWrdTV" > <select class="sc-eAKXzc WHZAG" id="wallets" name="wallets" > <option class="sc-bfYoXt iMKavL" value="Transaction Fixtures" > Transaction Fixtures </option> </select> <div class="sc-iNhVCk iKlFAn" > <div class="sc-frDJqD BJlqU" > <svg title="copy-paste" /> </div> <div class="sc-exAgwC drEAUM" title="show-hide-balance" > <div class="sc-cQFLBn csjSIK" > <input checked="" class="sc-lkqHmb caMISY" id="show-hide-balance" name="show-hide-balance" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="show-hide-balance" > <span class="sc-daURTG ejZnHM" data-off="" data-on="" /> <span class="sc-bXGyLb gAUwgD" /> </label> </div> </div> </div> </div> <div class="sc-gbOuXE jtxGjo" title="Balance in XEC" > 9,513.12 XEC </div> <div class="sc-dRFtgE kMmrAw" title="Balance in Local Currency" > $ 0.29   USD </div> <p class="sc-gkFcWv ksFojT" title="Price in Local Currency" > 1 XEC = 0.00003000 USD </p> </div> </div> <div class="sc-eLdqWK frDodJ" > <div class="sc-bMvGRv jXQmoR" > <div class="sc-exAgwC drEAUM" title="Toggle Multisend" > <div class="sc-cQFLBn cpPRCx" > <input class="sc-lkqHmb caMISY" id="Toggle Multisend" name="Toggle Multisend" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Multisend" > <span class="sc-daURTG cgTIPi" data-off="Send to one" data-on="Send to many" /> <span class="sc-bXGyLb irGXQC" /> </label> </div> </div> </div> <div class="sc-jVODtj gADtIu" > <div class="sc-itybZL chknVF" > <div class="sc-fzsDOv eehMCE" > <div class="sc-gPWkxV cvQkfa" > <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="address" placeholder="Address" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" /> <button class="sc-tilXH bLutsd" title="Scan QR Code" > <svg /> </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> <div class="sc-hGoxap hvIXtH" > <a class="sc-cSHVUG hFvvRR" href="https://explorer.e.cash/address/false" rel="noreferrer" target="_blank" /> </div> </div> <div class="sc-cIShpX kDjJIV" > <div class="sc-kafWEX bEfOBh" > <input class="sc-feJyhm sc-jwKygS eMcJH" name="amount" placeholder="Amount" step="0.01" type="number" value="9509.26" /> <select class="sc-elJkPf sc-jtRfpW fZHEnY" data-testid="currency-select-dropdown" > <option class="sc-kTUwUJ gdmvdt" data-testid="xec-option" value="XEC" > XEC </option> <option class="sc-kTUwUJ gdmvdt" data-testid="fiat-option" value="USD" > USD </option> </select> <button class="sc-btzYZH fdrRQD" > max </button> </div> <div class="sc-dqBHgY iKEgph" /> </div> </div> </div> <div class="sc-eMigcr gUSLxY" > <div class="sc-cIShpX kDjJIV" > <textarea class="sc-cmTdod gVyMGt" height="142" name="multiAddressInput" placeholder="One address & amount per line, separated by comma e.g. ecash:qpatql05s9jfavnu0tv6lkjjk25n6tmj9gkpyrlwu8,500 ecash:qzvydd4n3lm3xv62cx078nu9rg0e3srmqq0knykfed,700" /> <div class="sc-iyvyFf ifNZvv" > <div class="sc-hwwEjo bTyfLU" /> </div> </div> </div> </div> <div class="sc-fhYwyz bxdvwg" > <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle Cashtab Msg" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle Cashtab Msg" name="Toggle Cashtab Msg" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle Cashtab Msg" > <span class="sc-daURTG cgTIPi" data-off="✉️" data-on="✉️" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > Cashtab Msg </div> </div> </div> <div class="sc-jzgbtB gtmFkE" > <div class="sc-gJWqzi eUqtUK" > <div class="sc-exAgwC drEAUM" title="Toggle op_return_raw" > <div class="sc-cQFLBn gTEPaz" > <input class="sc-lkqHmb caMISY" id="Toggle op_return_raw" name="Toggle op_return_raw" type="checkbox" /> <label class="sc-gojNiO beHQrQ" for="Toggle op_return_raw" > <span class="sc-daURTG cgTIPi" data-off="" data-on="" /> <span class="sc-bXGyLb ehpwPH" /> </label> </div> </div> <div class="sc-rBLzX jnZaYd" > op_return_raw </div> </div> </div> </div> <div class="sc-fjmCvl kwQQHI" > <div class="sc-dTdPqK fSeooi" > 9,509.26 XEC </div> <div class="sc-kGXeez LHHXu" > = $ 0.29 USD </div> </div> <button class="sc-gqPbQI sc-bMVAic PNTzB" style="margin-top: 12px;" > Send </button> </div> </div> <div class="sc-cjHlYL czMpOh" > <button class="sc-dHmInP fysuvA" > <svg /> </button> <button aria-label="Send" class="sc-dHmInP fNRmYK" style="padding-bottom: 10px;" > <div class="sc-iwsKbI cuDgAv" > <svg title="tx-sent" /> </div> </button> <button aria-label="Tokens" class="sc-dHmInP fysuvA" > <svg title="Tokens" /> </button> <button aria-label="Receive" class="sc-dHmInP fysuvA" > <svg title="tx-received" /> </button> <div class="sc-fEUNkw jxxKde" title="Show Other Screens" > <span class="sc-dREXXX majFx" /> <div class="sc-kcbnda jUxIgD" title="Other Screens" > <button class="sc-hcmgZB bZLHUT" > <p> Wallet Backup </p> <svg title="wallet" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Wallets </p> <svg title="wallets" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Contacts </p> <svg title="Contact List" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Airdrop </p> <svg title="tx-airdrop" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Swap </p> <svg title="swap" /> </button> <button class="sc-hcmgZB bZLHUT" > <p> Sign & Verify </p> <svg class="sc-htpNat bPFBeM" /> </button> <button class="sc-hcmgZB bZLHUT" > <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__/SendXec.test.js:1578:20)
[05:44:04][Creating archive artifacts.tar.gz] Archive was created, file size 241.17 KB (246967 bytes)
[05:44:35][Publishing artifacts] Publishing 1 file using [ArtifactsCachePublisher]: results/artifacts => artifacts.tar.gz
[05:44:35][Publishing artifacts] Publishing 1 file using [WebPublisher]: results/artifacts => artifacts.tar.gz
[05:44:04][Step 1/1] ##teamcity[publishArtifacts '+:results/artifacts=>artifacts.tar.gz']
[05:44:36][Step 1/1] Build cashtab-tests failed with exit code 1
[05:44:04][Step 1/1] ##teamcity[buildProblem timestamp='2024-04-11T05:44:04.075' description='Build cashtab-tests failed with exit code 1']
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Sign & Verify
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] class="sc-htpNat bPFBeM"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] <button
[05:44:04][Step 1/1] class="sc-hcmgZB bZLHUT"
[05:44:04][Step 1/1] >
[05:44:04][Step 1/1] <p>
[05:44:04][Step 1/1] Settings
[05:44:04][Step 1/1] </p>
[05:44:04][Step 1/1] <svg
[05:44:04][Step 1/1] title="settings"
[05:44:04][Step 1/1] />
[05:44:04][Step 1/1] </button>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </div>
[05:44:04][Step 1/1] </body>
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] 1576 | // Confirm that even a msg of blank spaces is added
[05:44:04][Step 1/1] 1577 | await user.type(
[05:44:04][Step 1/1] > 1578 | screen.getByPlaceholderText(
[05:44:04][Step 1/1] | ^
[05:44:04][Step 1/1] 1579 | 'Include a public Cashtab msg with this tx (max 215 bytes)',
[05:44:04][Step 1/1] 1580 | ),
[05:44:04][Step 1/1] 1581 | ` `,
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)
[05:44:04][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:76:38
[05:44:04][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:52:17
[05:44:04][Step 1/1] at node_modules/@testing-library/dom/dist/query-helpers.js:95:19
[05:44:04][Step 1/1] at Object.getByPlaceholderText (src/components/Send/__tests__/SendXec.test.js:1578:20)
[05:44:04][Step 1/1]
[05:44:04][Step 1/1]
[05:44:04][Step 1/1] Test Suites: 8 failed, 24 passed, 32 total
[05:44:04][Step 1/1] Tests: 44 failed, 737 passed, 781 total
[05:44:04][Step 1/1] Snapshots: 0 total
[05:44:04][Step 1/1] Time: 31.2 s
[05:44:04][Step 1/1] Ran all test suites.
[05:44:04][Step 1/1] Build cashtab-tests failed with exit code 1
[05:44:13][Step 1/1] Process exited with code 1
[05:44:36][Step 1/1] Process exited with code 1 (Step: Command Line)
[05:44:36][Step 1/1] Waiting for 1 service processes to complete
[05:44:37][Step 1/1] Ant JUnit report watcher
[05:44:37][Ant JUnit report watcher] 1 report found for paths:
[05:44:37][Ant JUnit report watcher] /home/teamcity/buildAgent/work/jailed-build/results/artifacts/junit/*.xml
[05:44:37][Ant JUnit report watcher] Successfully parsed
[05:44:37][Successfully parsed] 1 report
[05:44:37][Successfully parsed] results/artifacts/junit/cashtab.xml
[05:44:37][Step 1/1] Step Command Line failed
[05:44:37]Ant JUnit report watcher
[05:44:37][Ant JUnit report watcher] No reports found for paths:
[05:44:37][Ant JUnit report watcher] +:results/test_bitcoin.xml
[05:44:37][Ant JUnit report watcher] +:results/**/junit_results*.xml
[05:44:37][Ant JUnit report watcher] +:results/**/*junit.xml
[05:44:37]Publishing internal artifacts (4s)
[05:44:42][Publishing internal artifacts] Publishing 1 file using [ArtifactsCachePublisher]
[05:44:42][Publishing internal artifacts] Publishing 1 file using [WebPublisher]
[05:44:37]Publishing artifacts (5s)
[05:44:37][Publishing artifacts] Collecting files to publish: [+:results/**/junit_results*.xml, +:bitcoin-abc/abc-ci-builds/cashtab-tests/gitian-results => cashtab-tests.tar.gz, +:bitcoin-abc/abc-ci-builds/cashtab-tests/*.log => artifacts.tar.gz]
[05:44:37][Publishing artifacts] Artifacts path 'results/**/junit_results*.xml' not found
[05:44:37][Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/cashtab-tests/gitian-results' not found
[05:44:37][Publishing artifacts] Artifacts path 'bitcoin-abc/abc-ci-builds/cashtab-tests/*.log' not found
[05:44:43]Build finished
×

×

Pin build

Cancel
×

Add build comment

Cancel
×

Promote Build

×

Add build comment

Cancel
×

Mute test

×

×

Server communication failure

Server is unavailable

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

Server shutdown started.

Please relogin to continue your work.

×

Run Custom Build

×

TODO

Loading related builds...
Cancel
×

Responsibility

×

Edit tags

Cancel
×

Loading...

×

Are you sure?

Cancel
×

Cancel