From ccbf49cb4d73c7632e1abc825444b82dbddb611b Mon Sep 17 00:00:00 2001 From: Amy Chen Date: Wed, 20 Nov 2024 15:47:06 -0800 Subject: [PATCH] add test --- portal/.eslintrc.js | 2 + .../js/__tests__/loadPatientHomePage.test.js | 55 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 portal/static/js/__tests__/loadPatientHomePage.test.js diff --git a/portal/.eslintrc.js b/portal/.eslintrc.js index 06a05aa33..7b5e473c3 100644 --- a/portal/.eslintrc.js +++ b/portal/.eslintrc.js @@ -1,6 +1,8 @@ // .eslintrc.js module.exports = { env: { + browser: true, + node: true, jest: true, }, globals: { diff --git a/portal/static/js/__tests__/loadPatientHomePage.test.js b/portal/static/js/__tests__/loadPatientHomePage.test.js new file mode 100644 index 000000000..0a78a8f9b --- /dev/null +++ b/portal/static/js/__tests__/loadPatientHomePage.test.js @@ -0,0 +1,55 @@ +import "expect-puppeteer"; +import puppeteer from "puppeteer"; + +//TODO get these from environment variables? +const homepage = "https://eproms-test.cirg.washington.edu"; +const testEmail = atob("YWNoZW4yNDAxK3Rlc3QxMTFAZ21haWwuY29t"); +const testPassword = atob("RWxlYW5vcjI="); + +describe("Login in to Patient Home Page", () => { + jest.setTimeout(25000); + let browser, page; + beforeAll(async () => { + browser = await puppeteer.launch(); + page = await browser.newPage(); + const timeout = 25000; + page.setDefaultTimeout(timeout); + await page.goto(homepage); + await page.setViewport({ + width: 1477, + height: 890, + }); + }); + + afterAll(async () => { + browser.close(); + }); + + it('should display "Log in" text on page', async () => { + await expect(page).toMatchTextContent(/Log in/); + }); + + it("should fill in login form", async () => { + await page.locator("#email").click({ + offset: { + x: 108.5, + y: 17.21875, + }, + }); + await page.locator("#email").fill(testEmail); + await page.keyboard.down("Tab"); + await page.keyboard.up("Tab"); + await page.locator("#password").fill(testPassword); + }); + + it("should click submit button", async () => { + await page.locator("#btnLogin").click(); + }); + + it("should have menu on page", async () => { + await page.waitForSelector("#tnthUserBtn"); + await page.locator("#tnthUserBtn").click(); + await page.locator(".logout").click(); + // await jestPuppeteer.debug(); + }); +});