refactor: test-e2e.sh script

This commit is contained in:
Joe Previte 2021-04-13 17:31:56 -07:00
parent 6c3bb101cd
commit 92b7c1e9a8
No known key found for this signature in database
GPG Key ID: 2C91590C6B742C24
3 changed files with 20 additions and 23 deletions

View File

@ -3,19 +3,9 @@ set -euo pipefail
main() {
cd "$(dirname "$0")/../.."
# We must keep jest in a sub-directory. See ../../test/package.json for more
# information. We must also run it from the root otherwise coverage will not
# include our source files.
if [[ -z ${PASSWORD-} ]] || [[ -z ${CODE_SERVER_ADDRESS-} ]]; then
echo "The end-to-end testing suites rely on your local environment"
echo -e "\n"
echo "Please set the following environment variables locally:"
echo " \$PASSWORD"
echo " \$CODE_SERVER_ADDRESS"
echo -e "\n"
exit 1
fi
CS_DISABLE_PLUGINS=true ./test/node_modules/.bin/jest "$@" --config ./test/jest.e2e.config.ts --runInBand
cd test
# TODO@jsjoeio remove the test-match
PASSWORD=e45432jklfdsab CODE_SERVER_ADDRESS=http://localhost:8080 yarn folio --config=config.ts --test-match login.test.ts --reporter=list
}
main "$@"

View File

@ -2,12 +2,16 @@ import { test, expect } from "@playwright/test"
import { CODE_SERVER_ADDRESS } from "../utils/constants"
test.describe("login page", () => {
test.beforeEach(async ({ page }) => {
// TODO@jsjoeio reset context somehow
await page.goto(CODE_SERVER_ADDRESS, { waitUntil: "networkidle" })
})
// Reset the browser so no cookies are persisted
// by emptying the storageState
const options = {
contextOptions: {
storageState: {},
},
}
test("should see the login page", async ({ page }) => {
test("should see the login page", options, async ({ page }) => {
await page.goto(CODE_SERVER_ADDRESS, { waitUntil: "networkidle" })
// It should send us to the login page
expect(await page.title()).toBe("code-server login")
})

View File

@ -2,12 +2,15 @@ import { test, expect } from "@playwright/test"
import { CODE_SERVER_ADDRESS, PASSWORD } from "../utils/constants"
test.describe("logout", () => {
test.beforeEach(async ({ page }) => {
// TODO@jsjoeio reset context
// Reset the browser so no cookies are persisted
// by emptying the storageState
const options = {
contextOptions: {
storageState: {},
},
}
test("should be able login and logout", options, async ({ page }) => {
await page.goto(CODE_SERVER_ADDRESS, { waitUntil: "networkidle" })
})
test("should be able login and logout", async ({ page }) => {
// Type in password
await page.fill(".password", PASSWORD)
// Click the submit button and login