import { Selector } from "testcafe"; import { getSiteRoot, getPageUrl, generateTestEvent, generateTestForm, deleteEvent, deleteForm, generateToken } from "./utils"; fixture`Event signup`.page(getSiteRoot()) .before(async (ctx) => { const token = await generateToken(); const form = await generateTestForm(token); const event = await generateTestEvent([form.id], token); ctx.eventId = event.id; ctx.formId = form.id; }) .after(async (ctx) => { const token = await generateToken(); await deleteEvent(ctx.eventId, token); await deleteForm(ctx.formId, token); }); test("User signups to event from front page", async t => { const CardSelector = Selector("[data-e2e=\"event-card\"]").withText("title_fi").nth(0); await t .click(CardSelector.child("a")); let url = await getPageUrl(); await t.expect(url).match(/\/events\/\d{1,4}/, "URL isn't /events/"); const SignupButton = Selector("button"); await t .click(SignupButton); url = await getPageUrl(); await t.expect(url).match(/\/signup\/\d{1,4}/, "URL isn't /signup/"); const nameField = Selector("input").nth(0); const emailField = Selector("input").nth(1); const typeField = Selector("fieldset").child(-1).child("div").child("div").child("label").nth(-1); await t .typeText(nameField, "Testi Testeri") .typeText(emailField, "e2e@sahkoinsinoorikilta.fi") .click(typeField); await t.click(Selector("button").nth(-1)); const statusMessage = Selector(".sign-up-statusmessage"); await t .hover(statusMessage) .expect( statusMessage.innerText ).eql("Sign-up submitted successfully"); });