From 5964b71e14ad1cd973d38c9158a21a84b0cfc8ea Mon Sep 17 00:00:00 2001 From: Danny Avila <110412045+danny-avila@users.noreply.github.com> Date: Sat, 20 May 2023 09:00:45 -0400 Subject: [PATCH] Setup tests with new user system (#344) * chore(.gitignore): add auth.json to gitignore test(landing.spec.js): remove commented out code and add check for landing page title test(login.spec.js): add test for login page title feat(package.json): add e2e:auth script to generate auth.json storage file for e2e tests * test(landing.spec.js): add beforeEach hook to create a new browser context with auth.json storage state test(landing.spec.js): change test name from 'landing page' to 'Landing title' fix(package.json): change e2e:auth script to save auth.json in e2e directory --- .gitignore | 2 +- e2e/specs/landing.spec.js | 21 +++++++++++++++------ e2e/specs/login.spec.js | 9 +++++++++ package.json | 1 + 4 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 e2e/specs/login.spec.js diff --git a/.gitignore b/.gitignore index e2072a72a4..2717054cb4 100644 --- a/.gitignore +++ b/.gitignore @@ -64,4 +64,4 @@ src/style - official.css # meilisearch meilisearch data.ms/* - +auth.json diff --git a/e2e/specs/landing.spec.js b/e2e/specs/landing.spec.js index 79afa866e1..0b8072d6ef 100644 --- a/e2e/specs/landing.spec.js +++ b/e2e/specs/landing.spec.js @@ -1,9 +1,18 @@ import { expect, test } from '@playwright/test'; -test('landing page', async ({ page }) => { - await page.goto('http://localhost:3080/'); - // expect (await page.title()).toBe('ChatGPT Clone'); - expect(await page.textContent('#landing-title')).toBe( - import.meta.env.VITE_APP_TITLE || 'ChatGPT Clone' - ); +test.describe('Landing suite', () => { + let myBrowser; + + test.beforeEach(async ({ browser }) => { + myBrowser = await browser.newContext({ + storageState: 'e2e/auth.json', + }); + }); + + test('Landing title', async () => { + const page = await myBrowser.newPage(); + await page.goto('http://localhost:3080/'); + const pageTitle = await page.textContent('#landing-title') + expect(pageTitle.length).toBeGreaterThan(0); + }); }); diff --git a/e2e/specs/login.spec.js b/e2e/specs/login.spec.js new file mode 100644 index 0000000000..98c9aef122 --- /dev/null +++ b/e2e/specs/login.spec.js @@ -0,0 +1,9 @@ +import { expect, test } from '@playwright/test'; + +test('landing page', async ({ page }) => { + await page.goto('http://localhost:3080/'); + const pageTitle = await page.$eval('h1', pageTitle => pageTitle.textContent); + console.log('pageTitle', pageTitle); + expect(pageTitle.length).toBeGreaterThan(0); + expect(pageTitle).toEqual('Welcome back'); +}); diff --git a/package.json b/package.json index 60a3392ba6..78270746cc 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "e2e:update": "playwright test --config=e2e/playwright.config.js --update-snapshots", "e2e:debug": "cross-env PWDEBUG=1 playwright test --config=e2e/playwright.config.js", "e2e:report": "npx playwright show-report e2e/playwright-report", + "e2e:auth": "npx playwright codegen --save-storage=e2e/auth.json http://localhost:3080/", "prepare": "husky install", "format": "prettier-eslint --write \"{,!(node_modules)/**/}*.{js,jsx,ts,tsx}\"" },