{"id":20747709,"url":"https://github.com/web3auth/web3auth-e2e-tests","last_synced_at":"2025-07-09T14:09:52.057Z","repository":{"id":176505042,"uuid":"377129203","full_name":"Web3Auth/web3auth-e2e-tests","owner":"Web3Auth","description":"End-to-end testing of Torus products.","archived":false,"fork":false,"pushed_at":"2025-05-27T03:48:43.000Z","size":45466,"stargazers_count":6,"open_issues_count":16,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-09T14:09:48.490Z","etag":null,"topics":["e2e-tests","torus"],"latest_commit_sha":null,"homepage":"https://tor.us","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Web3Auth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-15T10:51:00.000Z","updated_at":"2025-07-01T16:06:14.000Z","dependencies_parsed_at":"2023-11-16T13:38:42.373Z","dependency_job_id":"d8f4f62f-7000-4695-9ed9-61088097f26e","html_url":"https://github.com/Web3Auth/web3auth-e2e-tests","commit_stats":null,"previous_names":["web3auth/web3auth-e2e-tests"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Web3Auth/web3auth-e2e-tests","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Fweb3auth-e2e-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Fweb3auth-e2e-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Fweb3auth-e2e-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Fweb3auth-e2e-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Web3Auth","download_url":"https://codeload.github.com/Web3Auth/web3auth-e2e-tests/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Web3Auth%2Fweb3auth-e2e-tests/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264473886,"owners_count":23613960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e2e-tests","torus"],"created_at":"2024-11-17T08:14:11.053Z","updated_at":"2025-07-09T14:09:52.041Z","avatar_url":"https://github.com/Web3Auth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# web3auth-e2e-tests\n\n[![AuthService - E2ETests](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/authservice.yml/badge.svg)](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/authservice.yml)\n[![DemoWalletService - E2ETests](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/demowalletservice.yml/badge.svg)](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/demowalletservice.yml)\n[![WalletService - E2ETests](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/walletservice.yml/badge.svg)](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/walletservice.yml)\nEnd-to-end testing for Torus products.\n[Torus]\n[Web3Auth]\n\n### Built With\n\n- [Playwright](https://playwright.dev)\n- [Typescript](https://www.typescriptlang.org/)\n- [Lighthouse](https://developers.google.com/web/tools/lighthouse)\n\n## Getting Started\n\n### Prerequisites\n\nThe following software are required:\n\n- nodejs : Download and Install Node JS from\n  ```sh\n  https://nodejs.org/en/download/\n  ```\n\n### Installation\n\n1. Clone the repo using below URL\n\n```sh\nhttps://github.com/Web3Auth/web3auth-e2e-tests.git\n```\n\n2. Navigate to folder and install npm packages using:\n\n```sh\nnpm install\n```\n\n3. For first time installation run below command to download required browsers\n\n```sh\nnpm i -D @playwright/test\n# install supported browsers\nnpx playwright install\n```\n\n## Development\n\n### Scripts\n\n| Script                                                                                    | Description                                                              |\n| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |\n| `test --config=\u003ctest-dir\u003e/index.config.ts --project=\u003cchromium\\|firefox\\|webkit\u003e`          | Run tests in headless mode (no GUI, for CI) with feature specific config |\n| `test --config=\u003ctest-dir\u003e/index.config.ts --project=\u003cchromium\\|firefox\\|webkit\u003e --headed` | Run tests in headed mode (with GUI, for development)                     |\n| `trace \u003cpath-to-trace.zip\u003e`                                                               | Trace test results (for development)                                     |\n| `test --config=index.config.ts --project=\u003cchromium\\|firefox\\|webkit\u003e`                     | Run tests in headless mode (no GUI, for CI) using global config          |\n| `test --grep=@smoke --config=index.config.ts --project=\u003cchromium\\|firefox\\|webkit\u003e`       | Run tests with tags @smoke using global config                           |\n\n### Add a test to an existing test suite\n\nAdd a new file `\u003cname\u003e.test.ts` to the test suite's directory:\n\n```ts\ntest.only(\"focus this test\", async ({ page }) =\u003e {\n  // Run only this test during development\n});\n```\n\n```ts\ntest.skip(\"skip this test\", async ({ page }) =\u003e {\n  // This test is not run\n});\n```\n\n```ts\ntest.serial(\"run tests in serial mode\", async ({ page }) =\u003e {\n  // This runs the below test in a serial mode\n  test(\"scenario1\", async ({ page }) =\u003e {});\n  test(\"scenario2\", async ({ page }) =\u003e {});\n});\n```\n\nWhen you've done writing the test, change `test.only` to `test` to turn off focus mode.\n\n### Create a new test suite\n\nDuplicate `openloginV3/account-page/` rename and update the tests.\n\n## Status\n\n### OpenLogin\n\n[![OpenLoginV4 Test Run](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/v4.yml/badge.svg)](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/v4.yml)\n[![OpenLoginV3 Test Run](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/v3.yml/badge.svg)](https://github.com/Web3Auth/web3auth-e2e-tests/actions/workflows/v3.yml)\n[![OpenLogin - Lighthouse](https://github.com/torusresearch/torus-e2e-tests/actions/workflows/lighthouse.yml/badge.svg)](https://github.com/torusresearch/torus-e2e-tests/actions/workflows/lighthouse.yml)\n\nTo view smoke run results, join [discord](https://discord.gg/6XPmwznk).\n\n### Select elements\n\nPrefer text or accessibility selectors:\n\n```ts\nawait page.click(\"text=Welcome onboard\");\nawait page.click('button:has-text(\"Get Started\")');\nawait page.click('[aria-label=\"Continue with Facebook\"]');\nawait page.click(\"xpath=.//div[text()='Login']\");\n```\n\nSee [full list of selectors](https://playwright.dev/docs/selectors/#quick-guide).\n\n## Framework Execution Pattern\n\n![alt text](https://github.com/Web3Auth/web3auth-e2e-tests/blob/new_ui_openlogin/FW.png)\n\n\u003c!-- Links --\u003e\n\n[torus]: https://tor.us\n[Web3Auth]: https://app.openlogin.com/\n[Framework Design]: https://lucid.app/lucidchart/0a243786-3d3c-4dcb-b31d-f5c2a224ea42/edit?viewport_loc=-81%2C41%2C2150%2C965%2C0_0\u0026invitationId=inv_8cb3a0f7-3930-427f-b82e-259d5b27fa99\n\nAuth Service\nbuildEnv: production, testing, staging\nmfaFactorsEnabled: all selected\nmfaFactorsMandatory: device, password, authenticator mandatory\nmfaLevel: none, mandatory\nnetwork: sapphire devnet, sapphire mainnet, mainnet\nuxMode: popup, redirect\nlogins: passwordless only\n\nFor the below combinations, we want to test if the login is successful or not.\nAll random accounts in each combo case.\n\n### combo 1 - happy path (no mfa) - 30 mins\n\nbuildEnv: production\nmfaFactorsEnabled: all selected\nmfaFactorsMandatory: device, password, authenticator mandatory\nmfaLevel: none\nnetwork: sapphire mainnet\nuxMode: redirect\nlogins: passwordless only\n\n### combo 2 (start with mfaLevel: none, then change to mandatory - run twice, compare keys) - 2 hrs\n\nbuildEnv: testing\nmfaFactorsEnabled: all selected\nmfaFactorsMandatory: device, password, authenticator mandatory\nmfaLevel: mandatory\nnetwork: sapphire devnet\nuxMode: popup\nlogins: passwordless only\n\n## combo 3 (start with mfaLevel: mandatory, then recovery of mfa - run twice, compare keys) - 2 hrs\n\nbuildEnv: staging\nmfaFactorsEnabled: all selected\nmfaFactorsMandatory: device, password, authenticator mandatory\nmfaLevel: mandatory\nnetwork: mainnet\nuxMode: redirect\nlogins: passwordless only\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3auth%2Fweb3auth-e2e-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweb3auth%2Fweb3auth-e2e-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3auth%2Fweb3auth-e2e-tests/lists"}