Improve e2e test stability (#5966)

This commit is contained in:
Matiss Janis Aboltins
2025-10-20 19:21:54 +02:00
committed by GitHub
parent 8f284e7b60
commit 7eaf23eb7c
6 changed files with 23 additions and 8 deletions

View File

@@ -42,10 +42,10 @@
"generate:release-notes": "ts-node ./bin/release-note-generator.ts",
"test": "yarn workspaces foreach --all --parallel --verbose run test",
"test:debug": "yarn workspaces foreach --all --verbose run test",
"e2e": "yarn workspaces foreach --all --exclude desktop-electron --parallel --verbose run e2e",
"e2e": "yarn workspace @actual-app/web run e2e",
"e2e:desktop": "yarn build:desktop --skip-exe-build && yarn workspace desktop-electron e2e",
"playwright": "yarn workspace @actual-app/web run playwright",
"vrt": "yarn workspaces foreach --all --parallel --verbose run vrt",
"vrt": "yarn workspace @actual-app/web run vrt",
"vrt:docker": "./bin/run-vrt",
"rebuild-electron": "./node_modules/.bin/electron-rebuild -m ./packages/loot-core",
"rebuild-node": "yarn workspace loot-core rebuild",

View File

@@ -29,10 +29,14 @@ export class CustomReportPage {
async selectMode(mode: 'total' | 'time') {
switch (mode) {
case 'total':
await this.pageContent.getByRole('button', { name: 'Total' }).click();
await this.pageContent
.getByRole('button', { name: 'Total', exact: true })
.click();
break;
case 'time':
await this.pageContent.getByRole('button', { name: 'Time' }).click();
await this.pageContent
.getByRole('button', { name: 'Time', exact: true })
.click();
break;
default:
throw new Error(`Unrecognized mode: ${mode}`);

View File

@@ -59,8 +59,10 @@ test.describe('Mobile Rules', () => {
});
test('clicking on a rule opens edit form', async () => {
const ruleCount = await rulesPage.getRuleCount();
expect(ruleCount).toBeGreaterThan(0);
await expect(async () => {
const ruleCount = await rulesPage.getRuleCount();
expect(ruleCount).toBeGreaterThan(0);
}).toPass();
await rulesPage.clickRule(0);

View File

@@ -86,6 +86,7 @@
"generate:i18n": "i18next",
"test": "vitest",
"e2e": "npx playwright test --browser=chromium",
"vrt": "cross-env VRT=true npx playwright test --browser=chromium"
"vrt": "cross-env VRT=true npx playwright test --browser=chromium",
"playwright": "playwright"
}
}

View File

@@ -4,8 +4,9 @@ import { defineConfig } from '@playwright/test';
export default defineConfig({
timeout: 60000, // 60 seconds
retries: 1,
workers: process.env.CI ? 1 : undefined,
testDir: 'e2e/',
reporter: !process.env.CI ? [['html', { open: 'never' }]] : undefined,
reporter: process.env.CI ? 'blob' : [['html', { open: 'never' }]],
use: {
userAgent: 'playwright',
screenshot: 'on',

View File

@@ -0,0 +1,7 @@
---
category: Maintenance
authors: [MatissJanis]
---
Update mobile e2e tests to improve test reliability.