tests: fix flaky playwright tests

This commit is contained in:
Elias Schneider
2024-10-25 22:48:34 +02:00
parent 47e164b4b5
commit 735dc70d5f
5 changed files with 6 additions and 9 deletions

View File

@@ -36,13 +36,9 @@ jobs:
working-directory: ./frontend working-directory: ./frontend
run: npx playwright test run: npx playwright test
- name: Get container logs
if: always()
run: docker logs pocket-id
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
if: always() if: always()
with: with:
name: playwright-report name: playwright-report
path: frontend/tests/.output path: frontend/tests/.report
retention-days: 15 retention-days: 15

1
.gitignore vendored
View File

@@ -34,5 +34,6 @@ vite.config.ts.timestamp-*
# Application specific # Application specific
data data
/frontend/tests/.auth /frontend/tests/.auth
/frontend/tests/.report
pocket-id-backend pocket-id-backend
/backend/GeoLite2-City.mmdb /backend/GeoLite2-City.mmdb

View File

@@ -19,6 +19,7 @@ func newDatabase() (db *gorm.DB) {
log.Fatalf("failed to connect to database: %v", err) log.Fatalf("failed to connect to database: %v", err)
} }
sqlDb, err := db.DB() sqlDb, err := db.DB()
sqlDb.SetMaxOpenConns(1)
if err != nil { if err != nil {
log.Fatalf("failed to get sql.DB: %v", err) log.Fatalf("failed to get sql.DB: %v", err)
} }

View File

@@ -13,7 +13,7 @@ export default defineConfig({
workers: 1, workers: 1,
reporter: process.env.CI reporter: process.env.CI
? [['html'], ['github']] ? [['html'], ['github']]
: [['line'], ['html', { open: 'never', outputFolder: 'tests/.output' }]], : [['line'], ['html', { open: 'never', outputFolder: 'tests/.report' }]],
use: { use: {
baseURL: 'http://localhost', baseURL: 'http://localhost',
video: 'retain-on-failure', video: 'retain-on-failure',

View File

@@ -4,7 +4,7 @@ import { cleanupBackend } from './utils/cleanup.util';
test.beforeEach(cleanupBackend); test.beforeEach(cleanupBackend);
test('Create user group', async ({ page, baseURL }) => { test('Create user group', async ({ page }) => {
await page.goto('/settings/admin/user-groups'); await page.goto('/settings/admin/user-groups');
const group = userGroups.humanResources; const group = userGroups.humanResources;
@@ -15,8 +15,7 @@ test('Create user group', async ({ page, baseURL }) => {
await expect(page.getByRole('status')).toHaveText('User group created successfully'); await expect(page.getByRole('status')).toHaveText('User group created successfully');
const expectedRoute = new RegExp(`${baseURL}/settings/admin/user-groups/[a-f0-9-]+`); await page.waitForURL('/settings/admin/user-groups/*');
expect(page.url()).toMatch(expectedRoute);
await expect(page.getByLabel('Friendly Name')).toHaveValue(group.friendlyName); await expect(page.getByLabel('Friendly Name')).toHaveValue(group.friendlyName);
await expect(page.getByLabel('Name', { exact: true })).toHaveValue(group.name); await expect(page.getByLabel('Name', { exact: true })).toHaveValue(group.name);