diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index ed7bf1934..acd0006eb 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -86,10 +86,6 @@ jobs: - name: Supabase Server run: pnpm run supabase:web:start -- -x studio,migra,deno-relay,pgadmin-schema-diff,imgproxy,logflare - - name: Run App - run: | - pnpm run dev & - - name: Run Playwright tests run: pnpm run test - uses: actions/upload-artifact@v4 diff --git a/apps/e2e/playwright.config.ts b/apps/e2e/playwright.config.ts index 7298059ef..17dbdc0b8 100644 --- a/apps/e2e/playwright.config.ts +++ b/apps/e2e/playwright.config.ts @@ -26,10 +26,10 @@ export default defineConfig({ baseURL: 'http://localhost:3000', // take a screenshot when a test fails - screenshot: "on", + screenshot: 'on', /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', + trace: 'on-first-retry' }, // test timeout set to 2 minutes @@ -43,8 +43,8 @@ export default defineConfig({ projects: [ { name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, + use: { ...devices['Desktop Chrome'] } + } /* Test against mobile viewports. */ // { // name: 'Mobile Chrome', @@ -67,9 +67,11 @@ export default defineConfig({ ], /* Run your local dev server before starting the tests */ - // webServer: { - // command: 'npm run start', - // url: 'http://127.0.0.1:3000', - // reuseExistingServer: !process.env.CI, - // }, + webServer: { + command: 'cd ../../ && pnpm run dev', + url: 'http://localhost:3000', + reuseExistingServer: !process.env.CI, + stdout: 'pipe', + stderr: 'pipe' + } }); diff --git a/apps/e2e/tests/authentication/auth.po.ts b/apps/e2e/tests/authentication/auth.po.ts index 6392ef654..e53902721 100644 --- a/apps/e2e/tests/authentication/auth.po.ts +++ b/apps/e2e/tests/authentication/auth.po.ts @@ -44,6 +44,7 @@ export class AuthPageObject { await this.page.fill('input[name="email"]', params.email); await this.page.fill('input[name="password"]', params.password); await this.page.fill('input[name="repeatPassword"]', params.repeatPassword); + await this.page.click('button[type="submit"]'); } @@ -51,7 +52,7 @@ export class AuthPageObject { deleteAfter: boolean }) { return expect(async() => { - const res = await this.mailbox.visitMailbox(email); + const res = await this.mailbox.visitMailbox(email, params); expect(res).not.toBeNull(); }).toPass(); diff --git a/apps/e2e/tests/invitations/invitations.spec.ts b/apps/e2e/tests/invitations/invitations.spec.ts index 3fc150473..d842f8e08 100644 --- a/apps/e2e/tests/invitations/invitations.spec.ts +++ b/apps/e2e/tests/invitations/invitations.spec.ts @@ -12,9 +12,7 @@ test.describe('Invitations', () => { await invitations.setup(); }); - test('Full invite flow', async ({page}) => { - await page.waitForLoadState('networkidle'); - + test('Full invite flow', async () => { await invitations.navigateToMembers(); await invitations.openInviteForm(); @@ -57,9 +55,7 @@ test.describe('Invitations', () => { await expect(await invitations.teamAccounts.getTeams()).toHaveCount(1); }); - test('users can delete invites', async ({page}) => { - await page.waitForLoadState('networkidle'); - + test('users can delete invites', async () => { await invitations.navigateToMembers(); await invitations.openInviteForm(); @@ -81,9 +77,7 @@ test.describe('Invitations', () => { await expect(await invitations.getInvitations()).toHaveCount(0); }); - test('users can update invites', async ({page}) => { - await page.waitForLoadState('networkidle'); - + test('users can update invites', async () => { await invitations.navigateToMembers(); await invitations.openInviteForm();