Skip to content

feat: integrate Stripe subscription flow & add e2e verification tests #7

feat: integrate Stripe subscription flow & add e2e verification tests

feat: integrate Stripe subscription flow & add e2e verification tests #7

Triggered via pull request September 12, 2026 05:41
Status Failure
Total duration 6m 50s
Artifacts 1

e2e.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

8 errors, 2 warnings, and 1 notice
e2e
Process completed with exit code 1.
[mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents: tests/e2e/home.spec.js#L79
3) [mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: 'Pay with PayPal' }) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByRole('button', { name: 'Pay with PayPal' }) 77 | await expect( 78 | page.getByRole("button", { name: "Pay with PayPal" }) > 79 | ).toBeVisible(); | ^ 80 | expect(paypalSdkUrl.origin).toBe("https://www.paypal.com"); 81 | expect(paypalSdkUrl.searchParams.get("currency")).toBe("EUR"); 82 | expect(paypalSdkUrl.searchParams.get("client-id")).toBeTruthy(); at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:79:5
[mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents: tests/e2e/home.spec.js#L79
3) [mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: 'Pay with PayPal' }) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByRole('button', { name: 'Pay with PayPal' }) 77 | await expect( 78 | page.getByRole("button", { name: "Pay with PayPal" }) > 79 | ).toBeVisible(); | ^ 80 | expect(paypalSdkUrl.origin).toBe("https://www.paypal.com"); 81 | expect(paypalSdkUrl.searchParams.get("currency")).toBe("EUR"); 82 | expect(paypalSdkUrl.searchParams.get("client-id")).toBeTruthy(); at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:79:5
[mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents: tests/e2e/home.spec.js#L79
3) [mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: 'Pay with PayPal' }) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByRole('button', { name: 'Pay with PayPal' }) 77 | await expect( 78 | page.getByRole("button", { name: "Pay with PayPal" }) > 79 | ).toBeVisible(); | ^ 80 | expect(paypalSdkUrl.origin).toBe("https://www.paypal.com"); 81 | expect(paypalSdkUrl.searchParams.get("currency")).toBe("EUR"); 82 | expect(paypalSdkUrl.searchParams.get("client-id")).toBeTruthy(); at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:79:5
[desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents: tests/e2e/home.spec.js#L79
2) [desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: 'Pay with PayPal' }) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByRole('button', { name: 'Pay with PayPal' }) 77 | await expect( 78 | page.getByRole("button", { name: "Pay with PayPal" }) > 79 | ).toBeVisible(); | ^ 80 | expect(paypalSdkUrl.origin).toBe("https://www.paypal.com"); 81 | expect(paypalSdkUrl.searchParams.get("currency")).toBe("EUR"); 82 | expect(paypalSdkUrl.searchParams.get("client-id")).toBeTruthy(); at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:79:5
[desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents: tests/e2e/home.spec.js#L79
2) [desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByRole('button', { name: 'Pay with PayPal' }) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByRole('button', { name: 'Pay with PayPal' }) 77 | await expect( 78 | page.getByRole("button", { name: "Pay with PayPal" }) > 79 | ).toBeVisible(); | ^ 80 | expect(paypalSdkUrl.origin).toBe("https://www.paypal.com"); 81 | expect(paypalSdkUrl.searchParams.get("currency")).toBe("EUR"); 82 | expect(paypalSdkUrl.searchParams.get("client-id")).toBeTruthy(); at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:79:5
[desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents: tests/e2e/home.spec.js#L66
2) [desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents TimeoutError: page.waitForEvent: Timeout 60000ms exceeded while waiting for event "download" =========================== logs =========================== waiting for event "download" ============================================================ 64 | expect(uploadedChatRequests).toEqual([]); 65 | > 66 | const downloadPromise = page.waitForEvent("download", { timeout: 60_000 }); | ^ 67 | await page 68 | .getByRole("button", { name: /Download free preview PDF/i }) 69 | .click(); at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:66:32
[desktop-chromium] › tests/e2e/home.spec.js:19:1 › renders the analyzer landing page: tests/e2e/home.spec.js#L23
1) [desktop-chromium] › tests/e2e/home.spec.js:19:1 › renders the analyzer landing page ────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Analyze your WhatsApp Chat in Seconds', { exact: true }) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByText('Analyze your WhatsApp Chat in Seconds', { exact: true }) - waiting for "https://localhost:3000/" navigation to finish... - navigated to "https://localhost:3000/" 21 | await expect( 22 | page.getByText("Analyze your WhatsApp Chat in Seconds", { exact: true }) > 23 | ).toBeVisible({ timeout: 15_000 }); | ^ 24 | await expect(page.locator("#uploadmytextfile")).toBeAttached(); 25 | }); 26 | at /home/runner/work/whatsanalyze/whatsanalyze/tests/e2e/home.spec.js:23:5
e2e
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4, actions/upload-artifact@v4, pnpm/action-setup@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e
The process '/usr/bin/git' failed with exit code 128
🎭 Playwright Run Summary
2 failed [desktop-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents [mobile-chromium] › tests/e2e/home.spec.js:27:1 › analyzes the example chat without uploading its contents 1 flaky [desktop-chromium] › tests/e2e/home.spec.js:19:1 › renders the analyzer landing page ─────────── 31 passed (5.9m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report
35 MB
sha256:a866dbd1cd0f268fafb75e2a283b7e53dca1aa099d2ad7db16fa757304f5a023