Add cleanup hooks for E2E tests
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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,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`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user