From 11d9f62a654720fd882330bb078308f891ec4dc7 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Jun 2025 17:00:02 +0400 Subject: [PATCH 1/6] feat: add visual regression tests --- .github/workflows/test.yml | 29 +++++++++++ package.json | 1 + packages/arb-token-bridge-ui/package.json | 3 ++ .../components/Widget/WidgetTransferPanel.tsx | 2 +- .../widget-visual-regression.spec.ts | 49 ++++++++++++++++++ ...-horizontal-orientation-910x430-darwin.png | Bin 0 -> 32315 bytes ...et-vertical-orientation-441x740-darwin.png | Bin 0 -> 29710 bytes .../test-results/.last-run.json | 4 ++ 8 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts create mode 100644 packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts-snapshots/widget-horizontal-orientation-910x430-darwin.png create mode 100644 packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts-snapshots/widget-vertical-orientation-441x740-darwin.png create mode 100644 packages/arb-token-bridge-ui/test-results/.last-run.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 86f92a38fd..59029c28e2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,6 +59,35 @@ jobs: - name: Start UI and Test run: yarn start-server-and-test 'start' http://127.0.0.1:3000 'yarn test:ci' + test-visual-regression: + name: "Visual Regression Test" + runs-on: ubuntu-latest + needs: [build, check-files] + if: needs.check-files.outputs.run_tests == 'true' && github.event.pull_request.draft == false + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install node_modules + uses: OffchainLabs/actions/node-modules/install@main + + - name: Restore build artifacts + uses: ./.github/actions/restore-build-artifacts + + - name: Install Playwright browsers + run: yarn workspace arb-token-bridge-ui playwright install --with-deps + + - name: Run visual regression tests + run: yarn start-server-and-test "yarn workspace arb-token-bridge-ui start" http://127.0.0.1:3000 "yarn workspace arb-token-bridge-ui test:widget-snapshot" + + - name: Upload Playwright report in case of failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: playwright-report + path: packages/arb-token-bridge-ui/playwright-report/ + retention-days: 5 + audit: name: "Audit" runs-on: ubuntu-latest diff --git a/package.json b/package.json index f627f40830..7ba52f5088 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "start": "yarn workspace arb-token-bridge-ui start", "audit:ci": "audit-ci --config ./audit-ci.jsonc", "test:ci": "yarn workspace arb-token-bridge-ui test:ci", + "test:widget-snapshot": "yarn workspace arb-token-bridge-ui test:widget-snapshot", "prettier:check": "./node_modules/.bin/prettier --check .", "prettier:format": "./node_modules/.bin/prettier --write .", "lint": "yarn workspace arb-token-bridge-ui lint", diff --git a/packages/arb-token-bridge-ui/package.json b/packages/arb-token-bridge-ui/package.json index 4957500790..af625255cf 100644 --- a/packages/arb-token-bridge-ui/package.json +++ b/packages/arb-token-bridge-ui/package.json @@ -62,6 +62,7 @@ "start": "next start", "test": "vitest --config vitest.config.ts --watch", "test:ci": "vitest --config vitest.config.ts --run", + "test:widget-snapshot": "yarn playwright test src/components/Widget/__tests__/widget-visual-regression.spec.ts", "lint": "tsc && eslint", "lint:fix": "tsc && eslint --quiet --fix", "prettier:format": "prettier --config-precedence file-override --write \"src/**/*.{tsx,ts,scss,md,json}\"", @@ -91,6 +92,7 @@ "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.26.0", "@next/eslint-plugin-next": "^15.3.2", + "@playwright/test": "^1.45.3", "@synthetixio/synpress": "3.7.3", "@testing-library/react": "^16.3.0", "@types/lodash-es": "^4.17.12", @@ -128,6 +130,7 @@ "typescript": "^5.2.2", "typescript-eslint": "^8.32.1", "vitest": "^3.1.1", + "wait-on": "^7.2.0", "yargs": "^18.0.0" } } diff --git a/packages/arb-token-bridge-ui/src/components/Widget/WidgetTransferPanel.tsx b/packages/arb-token-bridge-ui/src/components/Widget/WidgetTransferPanel.tsx index 971e5f3e85..8116545704 100644 --- a/packages/arb-token-bridge-ui/src/components/Widget/WidgetTransferPanel.tsx +++ b/packages/arb-token-bridge-ui/src/components/Widget/WidgetTransferPanel.tsx @@ -43,7 +43,7 @@ export function WidgetTransferPanel({ <> -
+
{/* Left/Top panel */}
diff --git a/packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts b/packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts new file mode 100644 index 0000000000..9ad2c697ac --- /dev/null +++ b/packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts @@ -0,0 +1,49 @@ +import { test, expect, chromium, Browser, Page } from '@playwright/test' + +test.describe('Widget UI Snapshot Test', () => { + let browser: Browser + let page: Page + + test.beforeAll(async () => { + browser = await chromium.launch() + page = await browser.newPage() + }) + + test.afterAll(async () => { + await browser.close() + }) + + async function takeWidgetScreenshot( + width: number, + height: number, + orientation: string + ) { + // Set viewport size + await page.setViewportSize({ width, height }) + + // Navigate to the widget URL + await page.goto( + 'http://localhost:3000/?embedMode=1&sourceChain=sepolia&destinationChain=arbitrum-sepolia' + ) + + // Wait for widget to load + await page.waitForSelector('.widget-content', { timeout: 5_000 }) + + // Wait for animations to complete + await page.waitForTimeout(5_000) + + // Take snapshot + expect(await page.screenshot()).toMatchSnapshot( + `widget-${orientation}-orientation-${width}x${height}.png`, + { threshold: 0.2 } + ) + } + + test('should match snapshot for widget in horizontal mode (910x430)', async () => { + await takeWidgetScreenshot(910, 430, 'horizontal') + }) + + test('should match snapshot for widget in vertical mode (441x740)', async () => { + await takeWidgetScreenshot(441, 740, 'vertical') + }) +}) diff --git a/packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts-snapshots/widget-horizontal-orientation-910x430-darwin.png b/packages/arb-token-bridge-ui/src/components/Widget/__tests__/widget-visual-regression.spec.ts-snapshots/widget-horizontal-orientation-910x430-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..2e99aa7dfc9ef418a4078bb0533f1e2df95224dc GIT binary patch literal 32315 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 G!T$?rA-;M5 literal 0 HcmV?d00001 diff --git a/packages/arb-token-bridge-ui/test-results/.last-run.json b/packages/arb-token-bridge-ui/test-results/.last-run.json new file mode 100644 index 0000000000..cbcc1fbac1 --- /dev/null +++ b/packages/arb-token-bridge-ui/test-results/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file From 738be534146cc0f8787367f3dfd1757a769d198d Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Jun 2025 17:04:31 +0400 Subject: [PATCH 2/6] dev: remove results from code --- packages/arb-token-bridge-ui/test-results/.last-run.json | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 packages/arb-token-bridge-ui/test-results/.last-run.json diff --git a/packages/arb-token-bridge-ui/test-results/.last-run.json b/packages/arb-token-bridge-ui/test-results/.last-run.json deleted file mode 100644 index cbcc1fbac1..0000000000 --- a/packages/arb-token-bridge-ui/test-results/.last-run.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": "passed", - "failedTests": [] -} \ No newline at end of file From 420eadc18b5c98a2da8a3cfd2d964910b7c4097e Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Jun 2025 17:05:04 +0400 Subject: [PATCH 3/6] dev: add test results to gitignore --- .gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index 88ed85a66e..0719572799 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,12 @@ yarn-error.log .DS_Store tsconfig.tsbuildinfo __auto-generated-denylist.json +.pnp.* +# Local env files +.e2e.env +.env.local + +# Test results +/test-results/ +/playwright-report/ \ No newline at end of file From 450b5e16248d18f8ed56aac9e65e6f6a826fb889 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Jun 2025 17:08:46 +0400 Subject: [PATCH 4/6] dev: ignores --- .gitignore | 11 +---------- packages/arb-token-bridge-ui/.gitignore | 4 ++++ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 0719572799..2eb208b982 100644 --- a/.gitignore +++ b/.gitignore @@ -3,13 +3,4 @@ yarn-error.log .idea .DS_Store tsconfig.tsbuildinfo -__auto-generated-denylist.json -.pnp.* - -# Local env files -.e2e.env -.env.local - -# Test results -/test-results/ -/playwright-report/ \ No newline at end of file +__auto-generated-denylist.json \ No newline at end of file diff --git a/packages/arb-token-bridge-ui/.gitignore b/packages/arb-token-bridge-ui/.gitignore index c11e5a25db..242fc60f19 100644 --- a/packages/arb-token-bridge-ui/.gitignore +++ b/packages/arb-token-bridge-ui/.gitignore @@ -40,3 +40,7 @@ yarn-error.log* # Next.js .next next-env.d.ts + +# Test results +/test-results/ +/playwright-report/ \ No newline at end of file From 32e06e8b6d35e34f97143f0eaaa25d68ed4060e5 Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Jun 2025 17:09:21 +0400 Subject: [PATCH 5/6] dev mindif --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2eb208b982..69ce224425 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ yarn-error.log .idea .DS_Store tsconfig.tsbuildinfo -__auto-generated-denylist.json \ No newline at end of file +__auto-generated-denylist.json From 403db15b9870da35890a788487da579016b3efdf Mon Sep 17 00:00:00 2001 From: dewanshparashar Date: Fri, 20 Jun 2025 17:10:31 +0400 Subject: [PATCH 6/6] reset --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 69ce224425..88ed85a66e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ yarn-error.log .DS_Store tsconfig.tsbuildinfo __auto-generated-denylist.json +