-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(cat-voices): playwright refactoring
- Loading branch information
Showing
17 changed files
with
536 additions
and
254 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
47 changes: 26 additions & 21 deletions
47
...ces/packages/libs/catalyst_cardano/catalyst_cardano/wallet-automation/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,49 @@ | ||
# Wallet Automation | ||
|
||
Welcome to wallet automation, a testing package in Playwright that tests wallet integration for Catalyst Voices. | ||
|
||
## Introduction | ||
|
||
Wallet automation is a testing package in Playwright that automates the wallet creation process for the Catalyst project. | ||
Wallet automation is a testing package in Playwright that automates the wallet creation process for the Catalyst project. | ||
It is a part of the Catalyst Voices ecosystem. | ||
|
||
## Getting Started | ||
|
||
1. Clone this repository: | ||
|
||
```sh | ||
git clone | ||
cd catalyst-voices | ||
``` | ||
```sh | ||
git clone | ||
cd catalyst-voices | ||
``` | ||
|
||
2. Install Flutter and Dart: | ||
|
||
```sh | ||
brew install flutter | ||
``` | ||
```sh | ||
brew install flutter | ||
``` | ||
|
||
3. Bootstrap the project: | ||
|
||
```sh | ||
melos bootstrap | ||
``` | ||
```sh | ||
melos bootstrap | ||
``` | ||
|
||
4. Execute earthly command from this directory: | ||
|
||
```sh | ||
earthly +package-app | ||
``` | ||
```sh | ||
earthly +package-app | ||
``` | ||
|
||
5. Use docker compose to run the app: | ||
|
||
```sh | ||
docker compose up | ||
``` | ||
The app should be running on `localhost:8000`. | ||
```sh | ||
docker compose up | ||
``` | ||
|
||
The app should be running on `localhost:8000`. | ||
|
||
6. You can now run tests with the following command: | ||
|
||
```sh | ||
npx playwright test | ||
``` | ||
```sh | ||
npx playwright test | ||
``` |
40 changes: 40 additions & 0 deletions
40
catalyst_voices/packages/libs/catalyst_cardano/catalyst_cardano/wallet-automation/nginx.conf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
user nginx; | ||
worker_processes 1; | ||
error_log /var/log/nginx/error.log warn; | ||
pid /var/run/nginx.pid; | ||
events { | ||
worker_connections 1024; | ||
} | ||
http { | ||
include /etc/nginx/mime.types; | ||
default_type application/octet-stream; | ||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" ' | ||
'"$http_user_agent" "$http_x_forwarded_for"'; | ||
access_log /var/log/nginx/access.log main; | ||
sendfile on; | ||
keepalive_timeout 65; | ||
server { | ||
listen 80; | ||
server_name localhost; | ||
|
||
# https://cjycode.com/flutter_rust_bridge/manual/miscellaneous/web-cross-origin#background | ||
add_header Cross-Origin-Opener-Policy "same-origin"; | ||
add_header Cross-Origin-Embedder-Policy "require-corp"; | ||
|
||
location / { | ||
root /app; | ||
index index.html; | ||
try_files $uri $uri/ /index.html; | ||
} | ||
# Ensure that /m4 (and any other SPA path) serves index.html | ||
location /m4 { | ||
root /app; | ||
try_files $uri $uri/ /index.html; | ||
} | ||
error_page 500 502 503 504 /50x.html; | ||
location = /50x.html { | ||
root /usr/share/nginx/html; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
...packages/libs/catalyst_cardano/catalyst_cardano/wallet-automation/pages/walletListPage.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import { Locator, Page } from '@playwright/test'; | ||
import { BrowserExtensionName } from '../utils/extensions'; | ||
|
||
|
||
export class WalletListPage { | ||
readonly page: Page; | ||
|
||
constructor(page: Page) { | ||
this.page = page; | ||
} | ||
async clickEnableWallet(walletName: BrowserExtensionName): Promise<void> { | ||
const enableButton = (walletName: BrowserExtensionName) => this.page.locator( | ||
`flt-semantics:has(flt-semantics-img[aria-label*="Name: ${walletName.toLowerCase()}"]) ` + | ||
`flt-semantics[role="button"]:has-text("Enable wallet")` | ||
); | ||
await enableButton(walletName).click(); | ||
} | ||
} |
39 changes: 23 additions & 16 deletions
39
...es/packages/libs/catalyst_cardano/catalyst_cardano/wallet-automation/playwright.config.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,37 @@ | ||
import { defineConfig, devices } from '@playwright/test'; | ||
import dotenv from 'dotenv'; | ||
import path from 'path'; | ||
import { defineConfig, devices } from "@playwright/test"; | ||
import dotenv from "dotenv"; | ||
import path from "path"; | ||
|
||
dotenv.config({ path: path.resolve(__dirname, '.env') }); | ||
dotenv.config({ path: path.resolve(__dirname, ".env") }); | ||
|
||
export default defineConfig({ | ||
testDir: './tests', | ||
testDir: "./tests", | ||
fullyParallel: false, | ||
forbidOnly: !!process.env.CI, | ||
retries: process.env.CI ? 2 : 1, | ||
workers: process.env.CI ? 1 : 1, | ||
use: { | ||
baseURL: process.env.APP_URL || 'http://localhost:8000', | ||
screenshot: 'only-on-failure', | ||
trace: 'on', | ||
video: 'on', | ||
|
||
baseURL: process.env.APP_URL || "http://localhost:8000", | ||
ignoreHTTPSErrors: true, | ||
screenshot: "only-on-failure", | ||
trace: "on", | ||
video: "on", | ||
}, | ||
reporter: [ | ||
['html', { open: 'never', outputFolder: '/results' }], | ||
['junit', { outputFile: '/results/cardano-wallet.junit-report.xml' }]], | ||
timeout: 120 * 1000, | ||
["junit", { outputFile: "/results/cardano-wallet.junit-report.xml" }], | ||
], | ||
timeout: 60 * 1000, | ||
projects: [ | ||
{ | ||
name: 'chromium', | ||
use: { ...devices['Desktop Chrome'] }, | ||
name: "chromium", | ||
use: { | ||
...devices["Desktop Chrome"], | ||
launchOptions: { | ||
args: [ | ||
"--unsafely-treat-insecure-origin-as-secure=http://test-app:80", | ||
], | ||
}, | ||
}, | ||
}, | ||
] | ||
], | ||
}); |
Oops, something went wrong.