Add cleanup hooks for E2E tests

This commit is contained in:
Aarni Halinen
2021-01-15 00:23:30 +02:00
parent e57f05eb42
commit ba4010ff46
9 changed files with 211 additions and 23 deletions
-10
View File
@@ -1,10 +0,0 @@
import { Selector } from "testcafe";
const USERNAME = "admin";
const PASSWORD = "password123";
export const doLogin = async (t: TestController) => {
await t.typeText(Selector("#login-username"), USERNAME);
await t.typeText(Selector("#login-password"), PASSWORD);
await t.click(Selector("#login-submit"));
}
+19 -3
View File
@@ -1,8 +1,21 @@
import { Selector } from "testcafe";
import { getSiteRoot, getPageUrl } from "../utils";
import { doLogin } from "./common/login";
import { getSiteRoot, getPageUrl, generateTestForm, deleteEvent, deleteForm, doLogin, generateToken, getPostRequestLogger } from "../utils";
fixture`Admin events`.page(`${getSiteRoot()}/admin/events`);
const LOGGER = getPostRequestLogger("events/");
fixture`Admin events`.page(`${getSiteRoot()}/admin/events`)
.requestHooks(LOGGER)
.before(async (ctx) => {
const token = await generateToken();
const form = await generateTestForm(token);
ctx.formId = form.id;
})
.after(async (ctx) => {
const token = await generateToken();
const eResp = await deleteEvent(ctx.eventId, token);
await deleteForm(ctx.formId, token);
console.error(eResp);
});
test("Logged in user can create event", async t => {
const loginForm = Selector("form.admin-login-form");
@@ -63,6 +76,9 @@ test("Logged in user can create event", async t => {
await t.click(submit);
const parsed = JSON.parse(LOGGER.requests[0].response.body);
t.fixtureCtx.eventId = parsed.id;
const statusMessage = Selector("[data-e2e=\"admin-form-status-message\"]");
await t
.hover(statusMessage)
+12 -3
View File
@@ -1,8 +1,14 @@
import { Selector } from "testcafe";
import { getSiteRoot, getPageUrl } from "../utils";
import { doLogin } from "./common/login";
import { getSiteRoot, getPageUrl, deleteForm, doLogin, generateToken, getPostRequestLogger } from "../utils";
fixture`Admin events`.page(`${getSiteRoot()}/admin/signups`);
const LOGGER = getPostRequestLogger("signupForm/");
fixture`Admin signup form`.page(`${getSiteRoot()}/admin/signups`)
.requestHooks(LOGGER)
.after(async (ctx) => {
const token = await generateToken();
await deleteForm(ctx.formId, token);
});
test("Logged in user can create signup", async t => {
const loginForm = Selector("form.admin-login-form");
@@ -72,6 +78,9 @@ test("Logged in user can create signup", async t => {
await t.click(submit);
const parsed = JSON.parse(LOGGER.requests[0].response.body);
t.fixtureCtx.formId = parsed.id;
const statusMessage = Selector("[data-e2e=\"admin-form-status-message\"]");
await t
.hover(statusMessage)
+1 -2
View File
@@ -1,6 +1,5 @@
import { Selector, ClientFunction } from "testcafe";
import { getSiteRoot } from "../utils";
import { doLogin } from "./common/login";
import { getSiteRoot, doLogin } from "../utils";
fixture`Admin login page functions correctly`.page(`${getSiteRoot()}/admin/login`);