From 3c43d7af056712794d80fc58ddc061718240d8c9 Mon Sep 17 00:00:00 2001 From: pit Date: Mon, 18 Sep 2023 21:13:55 +0100 Subject: [PATCH] chore: improved structure' ' --- .gitignore | 2 +- apps/web/src/tests/auth.setup.ts | 25 ----------- apps/web/src/tests/e2e/auth.setup.ts | 13 ++++++ apps/web/src/tests/{ => e2e}/documenso.pdf | 0 .../test-auth-flow.unauthenticated.spec.ts} | 0 ...test-documents-page.authenticated.spec.ts} | 2 +- playwright.config.ts | 42 +++++++++++-------- 7 files changed, 40 insertions(+), 44 deletions(-) delete mode 100644 apps/web/src/tests/auth.setup.ts create mode 100644 apps/web/src/tests/e2e/auth.setup.ts rename apps/web/src/tests/{ => e2e}/documenso.pdf (100%) rename apps/web/src/tests/{test-auth-flow.spec.ts => e2e/test-auth-flow.unauthenticated.spec.ts} (100%) rename apps/web/src/tests/{test-document-upload.spec.ts => e2e/test-documents-page.authenticated.spec.ts} (97%) diff --git a/.gitignore b/.gitignore index 4c9945b4a..f33478a91 100644 --- a/.gitignore +++ b/.gitignore @@ -47,7 +47,7 @@ yarn-error.log* !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json -/test-results/ +**/test-results/ /playwright-report/ /playwright/.cache/ diff --git a/apps/web/src/tests/auth.setup.ts b/apps/web/src/tests/auth.setup.ts deleted file mode 100644 index 4da9ecb2d..000000000 --- a/apps/web/src/tests/auth.setup.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { type Page, expect, test as setup } from '@playwright/test'; - -import { STORAGE_STATE } from '../../../../playwright.config'; - -setup('authenticate', async ({ page }: { page: Page }) => { - await page.goto('/signup'); - await page.getByLabel('Name').fill(process.env.E2E_TEST_USERNAME); - await page.getByLabel('Email').fill(process.env.E2E_TEST_USER_EMAIL); - await page.getByLabel('Password').fill(process.env.E2E_TEST_USER_PASSWORD); - - const canvas = page.locator('canvas'); - const box = await canvas.boundingBox(); - - if (box) { - await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); - await page.mouse.down(); - await page.mouse.move(box.x + box.width / 4, box.y + box.height / 4); - await page.mouse.up(); - } - - await page.getByRole('button', { name: 'Sign Up' }).click(); - await page.waitForURL('/documents'); - await expect(page).toHaveURL('/documents'); - await page.context().storageState({ path: STORAGE_STATE }); -}); diff --git a/apps/web/src/tests/e2e/auth.setup.ts b/apps/web/src/tests/e2e/auth.setup.ts new file mode 100644 index 000000000..d0be72abb --- /dev/null +++ b/apps/web/src/tests/e2e/auth.setup.ts @@ -0,0 +1,13 @@ +import { type Page, expect, test as setup } from '@playwright/test'; + +import { STORAGE_STATE } from '../../../../../playwright.config'; + +setup('authenticate', async ({ page }: { page: Page }) => { + await page.goto('/'); + await page.getByLabel('Email').fill('example@documenso.com'); + await page.getByLabel('Password').fill('123456'); + await page.getByRole('button', { name: 'Sign In' }).click(); + await page.waitForURL('/documents'); + await expect(page).toHaveURL('/documents'); + await page.context().storageState({ path: STORAGE_STATE }); +}); diff --git a/apps/web/src/tests/documenso.pdf b/apps/web/src/tests/e2e/documenso.pdf similarity index 100% rename from apps/web/src/tests/documenso.pdf rename to apps/web/src/tests/e2e/documenso.pdf diff --git a/apps/web/src/tests/test-auth-flow.spec.ts b/apps/web/src/tests/e2e/test-auth-flow.unauthenticated.spec.ts similarity index 100% rename from apps/web/src/tests/test-auth-flow.spec.ts rename to apps/web/src/tests/e2e/test-auth-flow.unauthenticated.spec.ts diff --git a/apps/web/src/tests/test-document-upload.spec.ts b/apps/web/src/tests/e2e/test-documents-page.authenticated.spec.ts similarity index 97% rename from apps/web/src/tests/test-document-upload.spec.ts rename to apps/web/src/tests/e2e/test-documents-page.authenticated.spec.ts index a2c5bbbd8..0c98809ab 100644 --- a/apps/web/src/tests/test-document-upload.spec.ts +++ b/apps/web/src/tests/e2e/test-documents-page.authenticated.spec.ts @@ -27,7 +27,7 @@ test.describe('Document upload test', () => { await page .getByText('Add a documentDrag & drop your document here.') .locator('input[type=file]') - .setInputFiles('./apps/web/src/tests/documenso.pdf'); + .setInputFiles('./apps/web/src/tests/e2e/documenso.pdf'); }); test('user can see /documents page', async ({ page }: { page: Page }) => { diff --git a/playwright.config.ts b/playwright.config.ts index 54e6bd9dd..482223aeb 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -14,7 +14,7 @@ export const STORAGE_STATE = 'playwright/.auth/user.json'; * See https://playwright.dev/docs/test-configuration. */ export default defineConfig({ - testDir: './apps/web/src/tests', + testDir: './apps/web/src/tests/e2e', /* Run tests in files in parallel */ fullyParallel: true, /* Fail the build on CI if you accidentally left test.only in the source code. */ @@ -36,35 +36,43 @@ export default defineConfig({ /* Configure projects for major browsers */ projects: [ - { name: 'setup', testMatch: /.*\.setup\.ts/ }, + { name: 'setup', testMatch: '**/*.setup.ts' }, { name: 'Authenticated User Tests', - testMatch: /.*\.spec\.ts/, - testIgnore: /test-auth-flow\.spec\.ts/, + testMatch: '*.authenticated.spec.ts', dependencies: ['setup'], use: { + ...devices['Desktop Chrome'], storageState: STORAGE_STATE, }, }, { - name: 'chromium', + name: 'Unauthenticated User Tests', use: { ...devices['Desktop Chrome'], }, + testMatch: '*.unauthenticated.spec.ts', + testIgnore: ['*.setup.ts', '*.authenticated.spec.ts'], }, + // { + // name: 'chromium', + // use: { + // ...devices['Desktop Chrome'], + // }, + // }, - { - name: 'firefox', - use: { - ...devices['Desktop Firefox'], - }, - }, - { - name: 'webkit', - use: { - ...devices['Desktop Safari'], - }, - }, + // { + // name: 'firefox', + // use: { + // ...devices['Desktop Firefox'], + // }, + // }, + // { + // name: 'webkit', + // use: { + // ...devices['Desktop Safari'], + // }, + // }, ], /* Test against mobile viewports. */