Ref https://kentcdodds.com/blog/common-mistakes-with-react-testing-library
Add recommended linter for best practices with react testing library
Fix some false-positive test passes uncovered by linter.
Differential D15393
[Cashtab] Add eslint plugin for react testing library bytesofman on Feb 6 2024, 00:32. Authored by Tags None Subscribers None
Details
Ref https://kentcdodds.com/blog/common-mistakes-with-react-testing-library Add recommended linter for best practices with react testing library Fix some false-positive test passes uncovered by linter. eslint . and no output, npm test
Diff Detail
Event TimelineComment Actions Build Bitcoin ABC Diffs / Diff Testing (cashtab-tests) failed.
Failed tests logs: ====== CashTab Unit Tests: <CreateToken /> Renders the create token notification upon successful broadcast ====== Error: Unable to find an element by: [data-testid="create-token-notification"] Ignored nodes: comments, script, style <body> <div> <div class="sc-jhAzac leOABX" data-testid="create-token-ctn" > <div class="sc-cHGsZl cwvZhj" data-testid="create-token-form-ctn" > <h3> Create a Token </h3> <div class="sc-cvbbAY kdxSAu" > <form class="ant-form ant-form-horizontal ant-form-small css-dev-only-do-not-override-1b0bdye" style="width: auto;" > <label class="sc-fBuWsC eUyDxp" > Token Name </label> <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <input class="ant-input ant-input-sm css-dev-only-do-not-override-1b0bdye ant-input-outlined" data-testid="token-name-input" name="newTokenName" placeholder="Enter a name for your token" type="text" value="test token" /> </div> </div> <div style="display: flex; flex-wrap: nowrap;" > <div class="ant-form-item-explain ant-form-item-explain-connected css-dev-only-do-not-override-1b0bdye" role="alert" > <div class="" /> </div> </div> </div> </div> </div> <label class="sc-fBuWsC eUyDxp" > Ticker </label> <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <input class="ant-input ant-input-sm css-dev-only-do-not-override-1b0bdye ant-input-outlined" data-testid="token-ticker-input" name="newTokenTicker" placeholder="Enter a ticker for your token" type="text" value="TKE" /> </div> </div> <div style="display: flex; flex-wrap: nowrap;" > <div class="ant-form-item-explain ant-form-item-explain-connected css-dev-only-do-not-override-1b0bdye" role="alert" > <div class="" /> </div> </div> </div> </div> </div> <label class="sc-fBuWsC eUyDxp" > Decimals </label> <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <input class="ant-input ant-input-sm css-dev-only-do-not-override-1b0bdye ant-input-outlined" data-testid="token-decimals-input" name="newTokenDecimals" placeholder="Enter number of decimal places" type="number" value="2" /> </div> </div> <div style="display: flex; flex-wrap:... at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/Etokens/__tests__/CreateToken.test.js:160:26) ====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ====== Error: Unable to find an element by: [data-testid="send-token-notification"] Ignored nodes: comments, script, style <body> <div> <div class="sc-Rmtcm fuvBvM" > <div class="sc-caSCKo lotmeB" > 1 BEAR </div> <div class="ant-row css-dev-only-do-not-override-1b0bdye" type="flex" > <div class="ant-col ant-col-24 css-dev-only-do-not-override-1b0bdye" > <form class="ant-form ant-form-horizontal css-dev-only-do-not-override-1b0bdye" style="width: auto;" > <div class="sc-jAaTju jryjhA" > <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" style="margin-bottom: 0px;" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <span class="ant-input-group-wrapper ant-input-group-wrapper-outlined css-dev-only-do-not-override-1b0bdye" > <span class="ant-input-wrapper ant-input-group css-dev-only-do-not-override-1b0bdye" > <span class="ant-input-affix-wrapper css-dev-only-do-not-override-1b0bdye ant-input-outlined" > <span class="ant-input-prefix" > <span aria-label="wallet" class="anticon anticon-wallet sc-bxivhb iBBRHU" role="img" > <svg aria-hidden="true" data-icon="wallet" fill="currentColor" focusable="false" height="1em" viewBox="64 64 896 896" width="1em" > <path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1080 0 40 40 0 10-80 0z" /> </svg> </span> </span> <input autocomplete="off" class="ant-input css-dev-only-do-not-override-1b0bdye" data-testid="destination-address-single" name="address" placeholder="Address" required="" type="text" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" /> </span> <span class="ant-input-group-addon" > <span class="sc-jWBwVP mVapJ" data-testid="scan-qr-code" > <span aria-label="qrcode" class="anticon anticon-qrcode sc-ifAKCX jqgRJL" role="img" > <svg aria-hidden="true" data-icon="qrcode" fill="currentColor" focusable="false" height="1em" viewBox="64 64 896 896" width="1em" > <path d="M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194... at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:369:26) at runNextTicks (node:internal/process/task_queues:61:5) at listOnTimeout (node:internal/timers:528:9) at processTimers (node:internal/timers:502:7) Each failure log is accessible here: Comment Actions Build Bitcoin ABC Diffs / Diff Testing (cashtab-tests) failed.
Failed tests logs: ====== CashTab Unit Tests: <CreateToken /> Renders the create token notification upon successful broadcast ====== Error: Unable to find an element by: [data-testid="create-token-notification"] Ignored nodes: comments, script, style <body> <div> <div class="sc-jhAzac leOABX" data-testid="create-token-ctn" > <div class="sc-cHGsZl cwvZhj" data-testid="create-token-form-ctn" > <h3> Create a Token </h3> <div class="sc-cvbbAY kdxSAu" > <form class="ant-form ant-form-horizontal ant-form-small css-dev-only-do-not-override-1b0bdye" style="width: auto;" > <label class="sc-fBuWsC eUyDxp" > Token Name </label> <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <input class="ant-input ant-input-sm css-dev-only-do-not-override-1b0bdye ant-input-outlined" data-testid="token-name-input" name="newTokenName" placeholder="Enter a name for your token" type="text" value="test token" /> </div> </div> <div style="display: flex; flex-wrap: nowrap;" > <div class="ant-form-item-explain ant-form-item-explain-connected css-dev-only-do-not-override-1b0bdye" role="alert" > <div class="" /> </div> </div> </div> </div> </div> <label class="sc-fBuWsC eUyDxp" > Ticker </label> <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <input class="ant-input ant-input-sm css-dev-only-do-not-override-1b0bdye ant-input-outlined" data-testid="token-ticker-input" name="newTokenTicker" placeholder="Enter a ticker for your token" type="text" value="TKE" /> </div> </div> <div style="display: flex; flex-wrap: nowrap;" > <div class="ant-form-item-explain ant-form-item-explain-connected css-dev-only-do-not-override-1b0bdye" role="alert" > <div class="" /> </div> </div> </div> </div> </div> <label class="sc-fBuWsC eUyDxp" > Decimals </label> <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <input class="ant-input ant-input-sm css-dev-only-do-not-override-1b0bdye ant-input-outlined" data-testid="token-decimals-input" name="newTokenDecimals" placeholder="Enter number of decimal places" type="number" value="2" /> </div> </div> <div style="display: flex; flex-wrap:... at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/Etokens/__tests__/CreateToken.test.js:160:26) ====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ====== Error: Unable to find an element by: [data-testid="send-token-notification"] Ignored nodes: comments, script, style <body> <div> <div class="sc-Rmtcm fuvBvM" > <div class="sc-caSCKo lotmeB" > 1 BEAR </div> <div class="ant-row css-dev-only-do-not-override-1b0bdye" type="flex" > <div class="ant-col ant-col-24 css-dev-only-do-not-override-1b0bdye" > <form class="ant-form ant-form-horizontal css-dev-only-do-not-override-1b0bdye" style="width: auto;" > <div class="sc-jAaTju jryjhA" > <div class="ant-form-item css-dev-only-do-not-override-1b0bdye ant-form-item-with-help" style="margin-bottom: 0px;" > <div class="ant-row ant-form-item-row css-dev-only-do-not-override-1b0bdye" > <div class="ant-col ant-form-item-control css-dev-only-do-not-override-1b0bdye" > <div class="ant-form-item-control-input" > <div class="ant-form-item-control-input-content" > <span class="ant-input-group-wrapper ant-input-group-wrapper-outlined css-dev-only-do-not-override-1b0bdye" > <span class="ant-input-wrapper ant-input-group css-dev-only-do-not-override-1b0bdye" > <span class="ant-input-affix-wrapper css-dev-only-do-not-override-1b0bdye ant-input-outlined" > <span class="ant-input-prefix" > <span aria-label="wallet" class="anticon anticon-wallet sc-bxivhb iBBRHU" role="img" > <svg aria-hidden="true" data-icon="wallet" fill="currentColor" focusable="false" height="1em" viewBox="64 64 896 896" width="1em" > <path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1080 0 40 40 0 10-80 0z" /> </svg> </span> </span> <input autocomplete="off" class="ant-input css-dev-only-do-not-override-1b0bdye" data-testid="destination-address-single" name="address" placeholder="Address" required="" type="text" value="ecash:qp89xgjhcqdnzzemts0aj378nfe2mhu9yvxj9nhgg6" /> </span> <span class="ant-input-group-addon" > <span class="sc-jWBwVP mVapJ" data-testid="scan-qr-code" > <span aria-label="qrcode" class="anticon anticon-qrcode sc-ifAKCX jqgRJL" role="img" > <svg aria-hidden="true" data-icon="qrcode" fill="currentColor" focusable="false" height="1em" viewBox="64 64 896 896" width="1em" > <path d="M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194... at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27) at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33 at Object.findByTestId (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:369:26) Each failure log is accessible here:
|