diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 1f9d68e..9cbc7b3 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -36,13 +36,9 @@ jobs: working-directory: ./frontend run: npx playwright test - - name: Get container logs - if: always() - run: docker logs pocket-id - - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report - path: frontend/tests/.output + path: frontend/tests/.report retention-days: 15 diff --git a/.gitignore b/.gitignore index db1bed5..8171b45 100644 --- a/.gitignore +++ b/.gitignore @@ -34,5 +34,6 @@ vite.config.ts.timestamp-* # Application specific data /frontend/tests/.auth +/frontend/tests/.report pocket-id-backend /backend/GeoLite2-City.mmdb \ No newline at end of file diff --git a/backend/internal/bootstrap/db_bootstrap.go b/backend/internal/bootstrap/db_bootstrap.go index d64172b..3b8830e 100644 --- a/backend/internal/bootstrap/db_bootstrap.go +++ b/backend/internal/bootstrap/db_bootstrap.go @@ -19,6 +19,7 @@ func newDatabase() (db *gorm.DB) { log.Fatalf("failed to connect to database: %v", err) } sqlDb, err := db.DB() + sqlDb.SetMaxOpenConns(1) if err != nil { log.Fatalf("failed to get sql.DB: %v", err) } diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index e400518..c68d3c7 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -13,7 +13,7 @@ export default defineConfig({ workers: 1, reporter: process.env.CI ? [['html'], ['github']] - : [['line'], ['html', { open: 'never', outputFolder: 'tests/.output' }]], + : [['line'], ['html', { open: 'never', outputFolder: 'tests/.report' }]], use: { baseURL: 'http://localhost', video: 'retain-on-failure', diff --git a/frontend/tests/user-group.spec.ts b/frontend/tests/user-group.spec.ts index e5d092d..bfbbd4c 100644 --- a/frontend/tests/user-group.spec.ts +++ b/frontend/tests/user-group.spec.ts @@ -4,7 +4,7 @@ import { cleanupBackend } from './utils/cleanup.util'; test.beforeEach(cleanupBackend); -test('Create user group', async ({ page, baseURL }) => { +test('Create user group', async ({ page }) => { await page.goto('/settings/admin/user-groups'); 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'); - const expectedRoute = new RegExp(`${baseURL}/settings/admin/user-groups/[a-f0-9-]+`); - expect(page.url()).toMatch(expectedRoute); + await page.waitForURL('/settings/admin/user-groups/*'); await expect(page.getByLabel('Friendly Name')).toHaveValue(group.friendlyName); await expect(page.getByLabel('Name', { exact: true })).toHaveValue(group.name);