diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 7be11bf1d..4bd863e22 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -74,8 +74,8 @@ jobs: - name: Restore build artifacts uses: ./.github/actions/restore-build-artifacts - - name: Install cypress - run: yarn cypress install + - name: Install cypress 12.17.3 + run: CYPRESS_INSTALL_BINARY=12.17.3 yarn cypress install - name: Install linux dependencies run: | diff --git a/.github/workflows/retryable-monitor.yml b/.github/workflows/retryable-monitor.yml index 1dd236c3a..ff88f35d2 100644 --- a/.github/workflows/retryable-monitor.yml +++ b/.github/workflows/retryable-monitor.yml @@ -2,8 +2,8 @@ name: Retryable Monitor on: workflow_dispatch: - # schedule: - # - cron: "3 8 * * *" # Run once a day at 08:03am GMT + schedule: + - cron: '3 8 * * *' # Run once a day at 08:03am GMT jobs: run-retryable-monitoring: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ed95297d2..4b56b73e9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -111,27 +111,25 @@ jobs: NODE_OPTIONS: '--max_old_space_size=4096' run: yarn lint - # e2e-tests: - # name: "E2E Tests" - # needs: [build, check-files] - # if: needs.check-files.outputs.run_tests == 'true' && github.event.pull_request.draft == false - # uses: ./.github/workflows/e2e-tests.yml - # with: - # test_type: 'regular' - # secrets: inherit + e2e-tests: + name: 'E2E Tests' + needs: [build, check-files] + if: needs.check-files.outputs.run_tests == 'true' && github.event.pull_request.draft == false + uses: ./.github/workflows/e2e-tests.yml + with: + test_type: 'regular' + secrets: inherit test-e2e-success: name: 'Test E2E Success' runs-on: ubuntu-4 - # needs: [e2e-tests] + needs: [e2e-tests] if: always() steps: - # - name: Regular E2E Succeeded - # if: needs.e2e-tests.result == 'success' || needs.e2e-tests.result == 'skipped' - # run: echo "Regular E2E tests passed" - - # - name: Regular E2E Failed - # if: needs.e2e-tests.result != 'success' && needs.e2e-tests.result != 'skipped' - # run: exit 1 - - name: Regular E2E Skipped - run: echo "Regular E2E tests skipped" + - name: Regular E2E Succeeded + if: needs.e2e-tests.result == 'success' || needs.e2e-tests.result == 'skipped' + run: echo "Regular E2E tests passed" + + - name: Regular E2E Failed + if: needs.e2e-tests.result != 'success' && needs.e2e-tests.result != 'skipped' + run: exit 1 diff --git a/packages/arb-token-bridge-ui/tests/e2e/specs/batchDeposit.cy.ts b/packages/arb-token-bridge-ui/tests/e2e/specs/batchDeposit.cy.ts index 5e64ba37b..1b3ab5a5d 100644 --- a/packages/arb-token-bridge-ui/tests/e2e/specs/batchDeposit.cy.ts +++ b/packages/arb-token-bridge-ui/tests/e2e/specs/batchDeposit.cy.ts @@ -104,6 +104,7 @@ describe('Batch Deposit', () => { context('should show gas estimations and summary', () => { cy.typeAmount(ERC20AmountToSend); + cy.wait(5_000); cy.typeAmount2(nativeCurrencyAmountToSend); cy.findGasFeeSummary(zeroToLessThanOneEth); }); @@ -127,12 +128,11 @@ describe('Batch Deposit', () => { context('deposit should complete successfully', () => { cy.selectTransactionsPanelTab('settled'); - cy.findTransactionInTransactionHistory(txData); - cy.findTransactionInTransactionHistory({ duration: 'a few seconds ago', ...txData, }); + cy.switchToTransferPanelTab(); }); @@ -200,6 +200,7 @@ describe('Batch Deposit', () => { context('should show gas estimations and summary', () => { cy.typeAmount(ERC20AmountToSend); + cy.wait(5_000); cy.typeAmount2(nativeCurrencyAmountToSend); cy.findGasFeeSummary(zeroToLessThanOneEth); }); @@ -225,9 +226,6 @@ describe('Batch Deposit', () => { context('deposit should complete successfully', () => { cy.selectTransactionsPanelTab('settled'); - - cy.findTransactionInTransactionHistory(txData); - cy.findTransactionInTransactionHistory({ duration: 'a few seconds ago', ...txData, diff --git a/packages/arb-token-bridge-ui/tests/e2e/specs/txHistory.cy.ts b/packages/arb-token-bridge-ui/tests/e2e/specs/txHistory.cy.ts index cb1d434e7..69474a656 100644 --- a/packages/arb-token-bridge-ui/tests/e2e/specs/txHistory.cy.ts +++ b/packages/arb-token-bridge-ui/tests/e2e/specs/txHistory.cy.ts @@ -31,7 +31,6 @@ describe('Transaction History', () => { context('open transactions history panel', () => { cy.switchToTransactionHistoryTab('settled'); cy.findByLabelText('Load More Transactions').click(); - cy.findAllByTestId(CLAIMABLE_ROW_IDENTIFIER).its('length').should('be.gt', 0); cy.findAllByTestId(DEPOSIT_ROW_IDENTIFIER).its('length').should('be.gt', 0); }); }); diff --git a/packages/arb-token-bridge-ui/tests/support/commands.ts b/packages/arb-token-bridge-ui/tests/support/commands.ts index 556196ddf..a6a21a0a4 100644 --- a/packages/arb-token-bridge-ui/tests/support/commands.ts +++ b/packages/arb-token-bridge-ui/tests/support/commands.ts @@ -343,7 +343,7 @@ export function clickClaimButton(amountToClaim: string) { } export function selectRoute(type: 'arbitrum' | 'oftV2' | 'cctp') { - cy.findByLabelText(`Route ${type}`).should('be.visible').click(); + cy.findByLabelText(`Route ${type}`).scrollIntoView().should('be.visible').click(); } Cypress.Commands.addAll({ diff --git a/yarn.lock b/yarn.lock index 9ffac3bdf..be953abc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -417,30 +417,6 @@ tunnel-agent "^0.6.0" uuid "^8.3.2" -"@cypress/request@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.9.tgz#8ed6e08fea0c62998b5552301023af7268f11625" - integrity sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~4.0.4" - http-signature "~1.4.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - performance-now "^2.1.0" - qs "6.14.0" - safe-buffer "^5.1.2" - tough-cookie "^5.0.0" - tunnel-agent "^0.6.0" - uuid "^8.3.2" - "@cypress/webpack-dev-server@^3.5.2": version "3.11.0" resolved "https://registry.yarnpkg.com/@cypress/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#e94ed209cbda585b226d9b40f567801276558b65" @@ -3628,11 +3604,6 @@ "@testing-library/dom" "^7.11.0" cypress "*" -"@types/tmp@^0.2.3": - version "0.2.6" - resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" - integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA== - "@types/trusted-types@^2.0.2": version "2.0.7" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" @@ -5413,7 +5384,7 @@ buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.1: +buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -5670,11 +5641,6 @@ ci-info@^3.2.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -ci-info@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.1.tgz#355ad571920810b5623e11d40232f443f16f1daa" - integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== - citty@^0.1.5, citty@^0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz" @@ -5708,15 +5674,6 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-table3@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== - dependencies: - string-width "^4.2.0" - optionalDependencies: - colors "1.4.0" - cli-table3@~0.6.1: version "0.6.5" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" @@ -5834,11 +5791,6 @@ colorette@^2.0.10, colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -6168,56 +6120,7 @@ cypress-wait-until@^2.0.1: resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-2.0.1.tgz#69c575c7207d83e4ae023e2aaecf2b66148c9fc0" integrity sha512-+IyVnYNiaX1+C+V/LazrJWAi/CqiwfNoRSrFviECQEyolW1gDRy765PZosL2alSSGK8V10Y7BGfOQyZUDgmnjQ== -cypress@*: - version "15.4.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.4.0.tgz#067c414830c98c561742a106d03813a5e0e82459" - integrity sha512-+GC/Y/LXAcaMCzfuM7vRx5okRmonceZbr0ORUAoOrZt/5n2eGK8yh04bok1bWSjZ32wRHrZESqkswQ6biArN5w== - dependencies: - "@cypress/request" "^3.0.9" - "@cypress/xvfb" "^1.2.4" - "@types/sinonjs__fake-timers" "8.1.1" - "@types/sizzle" "^2.3.2" - "@types/tmp" "^0.2.3" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - buffer "^5.7.1" - cachedir "^2.3.0" - chalk "^4.1.0" - ci-info "^4.1.0" - cli-cursor "^3.1.0" - cli-table3 "0.6.1" - commander "^6.2.1" - common-tags "^1.8.0" - dayjs "^1.10.4" - debug "^4.3.4" - enquirer "^2.3.6" - eventemitter2 "6.4.7" - execa "4.1.0" - executable "^4.1.1" - extract-zip "2.0.1" - figures "^3.2.0" - fs-extra "^9.1.0" - hasha "5.2.2" - is-installed-globally "~0.4.0" - listr2 "^3.8.3" - lodash "^4.17.21" - log-symbols "^4.0.0" - minimist "^1.2.8" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - process "^0.11.10" - proxy-from-env "1.0.0" - request-progress "^3.0.0" - semver "^7.7.1" - supports-color "^8.1.1" - systeminformation "5.27.7" - tmp "~0.2.4" - tree-kill "1.2.2" - untildify "^4.0.0" - yauzl "^2.10.0" - -cypress@12.17.3: +cypress@*, cypress@12.17.3: version "12.17.3" resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.17.3.tgz#1e2b19037236fc60e4a4b3a14f0846be17a1fc0e" integrity sha512-/R4+xdIDjUSLYkiQfwJd630S81KIgicmQOLXotFxVXkl+eTeVO+3bHXxdi5KBh/OgC33HWN33kHX+0tQR/ZWpg== @@ -8144,7 +8047,7 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@4.0.4, form-data@^4.0.4, form-data@~2.3.2, form-data@~4.0.4: +form-data@4.0.4, form-data@^4.0.4, form-data@~2.3.2: version "4.0.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== @@ -8657,7 +8560,7 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasha@5.2.2, hasha@^5.0.0: +hasha@^5.0.0: version "5.2.2" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== @@ -8891,15 +8794,6 @@ http-signature@~1.3.6: jsprim "^2.0.2" sshpk "^1.14.1" -http-signature@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" - integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== - dependencies: - assert-plus "^1.0.0" - jsprim "^2.0.2" - sshpk "^1.18.0" - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -11511,13 +11405,6 @@ qs@6.13.0: dependencies: side-channel "^1.0.6" -qs@6.14.0: - version "6.14.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" - integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== - dependencies: - side-channel "^1.1.0" - qs@~6.10.3: version "6.10.5" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4" @@ -12635,7 +12522,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sshpk@^1.14.1, sshpk@^1.18.0: +sshpk@^1.14.1: version "1.18.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== @@ -13095,11 +12982,6 @@ system-architecture@^0.1.0: resolved "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz" integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== -systeminformation@5.27.7: - version "5.27.7" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.27.7.tgz#4dc9d436419948cd5e5f076779a1298220d19a72" - integrity sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg== - tabbable@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" @@ -13350,19 +13232,7 @@ tippy.js@^6.3.1, tippy.js@^6.3.7: dependencies: "@popperjs/core" "^2.9.0" -tldts-core@^6.1.86: - version "6.1.86" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" - integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== - -tldts@^6.1.32: - version "6.1.86" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" - integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== - dependencies: - tldts-core "^6.1.86" - -tmp@~0.2.1, tmp@~0.2.4: +tmp@~0.2.1: version "0.2.5" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== @@ -13416,23 +13286,11 @@ tough-cookie@^4.1.3: universalify "^0.2.0" url-parse "^1.5.3" -tough-cookie@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" - integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== - dependencies: - tldts "^6.1.32" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-kill@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - trim-repeated@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"