forked from Ruderverein-Donau-Linz/rowt
fix ci
This commit is contained in:
parent
caea656620
commit
a5a5b1ec25
@ -7,7 +7,6 @@ test("cox can create and delete trip", async ({ page }) => {
|
|||||||
await page.getByPlaceholder("Name").press("Tab");
|
await page.getByPlaceholder("Name").press("Tab");
|
||||||
await page.getByPlaceholder("Passwort").fill("cox");
|
await page.getByPlaceholder("Passwort").fill("cox");
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
await page.getByPlaceholder("Passwort").press("Enter");
|
||||||
await page.locator('li').filter({ hasText: 'Geplante Ausfahrten' }).getByRole('link').click();
|
|
||||||
await page.locator('a[href="#"]:has-text("Ausfahrt")').first().click();
|
await page.locator('a[href="#"]:has-text("Ausfahrt")').first().click();
|
||||||
await page.locator("#sidebar #planned_starting_time").click();
|
await page.locator("#sidebar #planned_starting_time").click();
|
||||||
await page.locator("#sidebar #planned_starting_time").fill("18:00");
|
await page.locator("#sidebar #planned_starting_time").fill("18:00");
|
||||||
@ -17,7 +16,7 @@ test("cox can create and delete trip", async ({ page }) => {
|
|||||||
await page.getByRole("button", { name: "Erstellen", exact: true }).click();
|
await page.getByRole("button", { name: "Erstellen", exact: true }).click();
|
||||||
await expect(page.locator("body")).toContainText("18:00 Uhr (cox) Details");
|
await expect(page.locator("body")).toContainText("18:00 Uhr (cox) Details");
|
||||||
|
|
||||||
await page.goto("/planned");
|
await page.goto("/");
|
||||||
await page.getByRole('link', { name: 'Details' }).nth(1).click();
|
await page.getByRole('link', { name: 'Details' }).nth(1).click();
|
||||||
await page.getByRole("link", { name: "Termin löschen" }).click();
|
await page.getByRole("link", { name: "Termin löschen" }).click();
|
||||||
await expect(page.locator("body")).toContainText("Erfolgreich gelöscht!");
|
await expect(page.locator("body")).toContainText("Erfolgreich gelöscht!");
|
||||||
@ -38,7 +37,6 @@ test.describe("cox can edit trips", () => {
|
|||||||
await page.getByPlaceholder("Name").press("Tab");
|
await page.getByPlaceholder("Name").press("Tab");
|
||||||
await page.getByPlaceholder("Passwort").fill("cox");
|
await page.getByPlaceholder("Passwort").fill("cox");
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
await page.getByPlaceholder("Passwort").press("Enter");
|
||||||
await page.locator('li').filter({ hasText: 'Geplante Ausfahrten' }).getByRole('link').click();
|
|
||||||
await page.locator('a[href="#"]:has-text("Ausfahrt")').first().click();
|
await page.locator('a[href="#"]:has-text("Ausfahrt")').first().click();
|
||||||
await page.locator("#sidebar #planned_starting_time").click();
|
await page.locator("#sidebar #planned_starting_time").click();
|
||||||
await page.locator("#sidebar #planned_starting_time").fill("18:00");
|
await page.locator("#sidebar #planned_starting_time").fill("18:00");
|
||||||
@ -51,7 +49,7 @@ test.describe("cox can edit trips", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("edit remarks", async () => {
|
test("edit remarks", async () => {
|
||||||
await sharedPage.goto("/planned");
|
await sharedPage.goto("/");
|
||||||
await sharedPage.getByRole('link', { name: 'Details' }).nth(1).click();
|
await sharedPage.getByRole('link', { name: 'Details' }).nth(1).click();
|
||||||
await sharedPage.locator("#sidebar #notes").click();
|
await sharedPage.locator("#sidebar #notes").click();
|
||||||
await sharedPage.locator("#sidebar #notes").fill("Meine Anmerkung");
|
await sharedPage.locator("#sidebar #notes").fill("Meine Anmerkung");
|
||||||
@ -67,7 +65,7 @@ test.describe("cox can edit trips", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("add and remove guest", async () => {
|
test("add and remove guest", async () => {
|
||||||
await sharedPage.goto("/planned");
|
await sharedPage.goto("/");
|
||||||
await sharedPage.getByRole("link", { name: "Details" }).nth(1).click();
|
await sharedPage.getByRole("link", { name: "Details" }).nth(1).click();
|
||||||
await sharedPage.locator("#sidebar #user_note").click();
|
await sharedPage.locator("#sidebar #user_note").click();
|
||||||
await sharedPage.locator("#sidebar #user_note").fill("Mein Gast");
|
await sharedPage.locator("#sidebar #user_note").fill("Mein Gast");
|
||||||
@ -107,7 +105,7 @@ test.describe("cox can edit trips", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("change amount rower", async () => {
|
test("change amount rower", async () => {
|
||||||
await sharedPage.goto("/planned");
|
await sharedPage.goto("/");
|
||||||
await sharedPage.getByRole("link", { name: "Details" }).nth(1).click();
|
await sharedPage.getByRole("link", { name: "Details" }).nth(1).click();
|
||||||
await expect(sharedPage.locator("#sidebar")).toContainText(
|
await expect(sharedPage.locator("#sidebar")).toContainText(
|
||||||
"Freie Plätze: 5",
|
"Freie Plätze: 5",
|
||||||
@ -121,7 +119,7 @@ test.describe("cox can edit trips", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("call off trip", async () => {
|
test("call off trip", async () => {
|
||||||
await sharedPage.goto("/planned");
|
await sharedPage.goto("/");
|
||||||
await sharedPage.getByRole("link", { name: "Details" }).nth(1).click();
|
await sharedPage.getByRole("link", { name: "Details" }).nth(1).click();
|
||||||
await expect(sharedPage.locator("#sidebar")).toContainText(
|
await expect(sharedPage.locator("#sidebar")).toContainText(
|
||||||
"Freie Plätze: 3",
|
"Freie Plätze: 3",
|
||||||
@ -136,7 +134,7 @@ test.describe("cox can edit trips", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test.afterAll(async () => {
|
test.afterAll(async () => {
|
||||||
await sharedPage.goto("/planned");
|
await sharedPage.goto("/");
|
||||||
await sharedPage.getByRole('link', { name: 'Details' }).nth(1).click();
|
await sharedPage.getByRole('link', { name: 'Details' }).nth(1).click();
|
||||||
await sharedPage.getByRole("link", { name: "Termin löschen" }).click();
|
await sharedPage.getByRole("link", { name: "Termin löschen" }).click();
|
||||||
await sharedPage.close();
|
await sharedPage.close();
|
||||||
|
@ -1,383 +0,0 @@
|
|||||||
import { test, expect } from "@playwright/test";
|
|
||||||
|
|
||||||
test("Cox can start and cancel trip", async ({ page }, testInfo) => {
|
|
||||||
await page.goto("/auth");
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("cox2");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("cox");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/");
|
|
||||||
await page.getByRole("link", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
if (testInfo.project.name.includes("Mobile")) {
|
|
||||||
// No left boat selector on mobile views
|
|
||||||
await page.getByText('-- Wähle ein Boot aus ---').nth(1).click();
|
|
||||||
await page.getByRole("option", { name: "Joe" }).click();
|
|
||||||
} else {
|
|
||||||
await page.getByText('2x', { exact: true }).click();
|
|
||||||
await page.getByText("Joe", { exact: true }).click();
|
|
||||||
}
|
|
||||||
await page.getByLabel('Remove item: \'6\'').click(); // remove pre-filled cox2
|
|
||||||
await page.getByPlaceholder("Ruderer auswählen").click();
|
|
||||||
await page.getByRole("option", { name: "rower2" }).click();
|
|
||||||
await page.getByRole("option", { name: "cox2" }).click();
|
|
||||||
await expect(page.getByRole("listbox")).toContainText(
|
|
||||||
"Nur 2 Ruderer können hinzugefügt werden",
|
|
||||||
);
|
|
||||||
await expect(page.locator("#shipmaster-newrowerjs")).toContainText("cox");
|
|
||||||
await expect(page.locator("#steering_person-newrowerjs")).toContainText(
|
|
||||||
"rower2 cox",
|
|
||||||
);
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt erfolgreich hinzugefügt",
|
|
||||||
);
|
|
||||||
await expect(page.locator("body")).toContainText("Joe");
|
|
||||||
|
|
||||||
await page.getByRole("link", { name: "Joe" }).click();
|
|
||||||
page.once("dialog", (dialog) => {
|
|
||||||
dialog.accept().catch(() => {});
|
|
||||||
});
|
|
||||||
await page.getByRole("link", { name: "Löschen" }).click();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("Cox can start and finish trip", async ({ page }, testInfo) => {
|
|
||||||
await page.goto("/auth");
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("cox2");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("cox");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/");
|
|
||||||
await page.getByRole("link", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
if (testInfo.project.name.includes("Mobile")) {
|
|
||||||
// No left boat selector on mobile views
|
|
||||||
await page.getByText('-- Wähle ein Boot aus ---').nth(1).click();
|
|
||||||
await page.getByRole("option", { name: "Joe" }).click();
|
|
||||||
} else {
|
|
||||||
await page.getByText('2x', { exact: true }).click();
|
|
||||||
await page.getByText("Joe", { exact: true }).click();
|
|
||||||
}
|
|
||||||
await page.getByLabel('Remove item: \'6\'').click(); // remove pre-filled cox2
|
|
||||||
await page.getByPlaceholder("Ruderer auswählen").click();
|
|
||||||
await page.getByRole("option", { name: "rower2" }).click();
|
|
||||||
await page.getByRole("option", { name: "cox2" }).click();
|
|
||||||
await expect(page.getByRole("listbox")).toContainText(
|
|
||||||
"Nur 2 Ruderer können hinzugefügt werden",
|
|
||||||
);
|
|
||||||
|
|
||||||
// Trip starts 2 hours ago
|
|
||||||
const datetimeSelector = '#departure';
|
|
||||||
const currentValue = await page.$eval(datetimeSelector, el => el.value);
|
|
||||||
const currentDate = new Date(currentValue);
|
|
||||||
currentDate.setMinutes(currentDate.getMinutes());
|
|
||||||
currentDate.setHours(currentDate.getHours() - new Date().getTimezoneOffset()/60 - 2);
|
|
||||||
const newDatetime = currentDate.toISOString().slice(0, 16);
|
|
||||||
await page.$eval(datetimeSelector, (el, value) => el.value = value, newDatetime);
|
|
||||||
|
|
||||||
await expect(page.locator("#shipmaster-newrowerjs")).toContainText("cox");
|
|
||||||
await expect(page.locator("#steering_person-newrowerjs")).toContainText(
|
|
||||||
"rower2 cox",
|
|
||||||
);
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt erfolgreich hinzugefügt",
|
|
||||||
);
|
|
||||||
await expect(page.locator("body")).toContainText("Joe");
|
|
||||||
|
|
||||||
await page.goto("/log");
|
|
||||||
await page.locator("div:nth-child(2) > .border-0").click();
|
|
||||||
|
|
||||||
await page.getByRole("combobox", { name: "Destination" }).click();
|
|
||||||
await page.getByRole("combobox", { name: "Destination" }).fill("Ottensheim");
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt beenden" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt korrekt eingetragen",
|
|
||||||
);
|
|
||||||
|
|
||||||
await page.goto('/log/show');
|
|
||||||
await expect(page.locator('body')).toContainText('Joe');
|
|
||||||
await expect(page.locator('body')).toContainText('(cox2)');
|
|
||||||
await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
|
|
||||||
await expect(page.locator('body')).toContainText('Ruderer: cox2, rower2');
|
|
||||||
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.getByRole('banner').getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await page.getByRole('link', { name: 'Ausloggen' }).click();
|
|
||||||
// Login as admin
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("main");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("admin");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/log/show");
|
|
||||||
await page.getByText('(cox2)').click();
|
|
||||||
page.once("dialog", (dialog) => {
|
|
||||||
dialog.accept().catch(() => {});
|
|
||||||
});
|
|
||||||
await page.getByRole('link', { name: 'Löschen' }).click();
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.getByRole('banner').getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await page.getByRole('link', { name: 'Ausloggen' }).click();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("Kiosk can start and cancel trip", async ({ page }, testInfo) => {
|
|
||||||
await page.goto("/log/kiosk/ekrv2019/Linz");
|
|
||||||
if (testInfo.project.name.includes("Mobile")) {
|
|
||||||
// No left boat selector on mobile views
|
|
||||||
await page.getByText('-- Wähle ein Boot aus ---').nth(1).click();
|
|
||||||
await page.getByRole("option", { name: "Joe" }).click();
|
|
||||||
} else {
|
|
||||||
await page.getByText('2x', { exact: true }).click();
|
|
||||||
await page.getByText("Joe", { exact: true }).click();
|
|
||||||
}
|
|
||||||
await page.getByPlaceholder("Ruderer auswählen").click();
|
|
||||||
await page.getByRole("option", { name: "rower2" }).click();
|
|
||||||
await page.getByRole("option", { name: "cox2" }).click();
|
|
||||||
await expect(page.getByRole("listbox")).toContainText(
|
|
||||||
"Nur 2 Ruderer können hinzugefügt werden",
|
|
||||||
);
|
|
||||||
await expect(page.locator("#shipmaster-newrowerjs")).toContainText("cox");
|
|
||||||
await expect(page.locator("#steering_person-newrowerjs")).toContainText(
|
|
||||||
"rower2 cox",
|
|
||||||
);
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt erfolgreich hinzugefügt",
|
|
||||||
);
|
|
||||||
await expect(page.locator("body")).toContainText("Joe");
|
|
||||||
|
|
||||||
await page.getByRole("link", { name: "Joe" }).click();
|
|
||||||
page.once("dialog", (dialog) => {
|
|
||||||
dialog.accept().catch(() => {});
|
|
||||||
});
|
|
||||||
await page.getByRole("link", { name: "Löschen" }).click();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("Kiosk can start and finish trip", async ({ page }, testInfo) => {
|
|
||||||
await page.goto("/log/kiosk/ekrv2019/Linz");
|
|
||||||
|
|
||||||
if (testInfo.project.name.includes("Mobile")) {
|
|
||||||
// No left boat selector on mobile views
|
|
||||||
await page.getByText('-- Wähle ein Boot aus ---').nth(1).click();
|
|
||||||
await page.getByRole("option", { name: "Joe" }).click();
|
|
||||||
} else {
|
|
||||||
await page.getByText('2x', { exact: true }).click();
|
|
||||||
await page.getByText("Joe", { exact: true }).click();
|
|
||||||
}
|
|
||||||
await page.getByPlaceholder("Ruderer auswählen").click();
|
|
||||||
await page.getByRole("option", { name: "rower2" }).click();
|
|
||||||
await page.getByRole("option", { name: "cox2" }).click();
|
|
||||||
await expect(page.getByRole("listbox")).toContainText(
|
|
||||||
"Nur 2 Ruderer können hinzugefügt werden",
|
|
||||||
);
|
|
||||||
|
|
||||||
// Trip starts 2 hours ago
|
|
||||||
const datetimeSelector = '#departure';
|
|
||||||
const currentValue = await page.$eval(datetimeSelector, el => el.value);
|
|
||||||
const currentDate = new Date(currentValue);
|
|
||||||
currentDate.setMinutes(currentDate.getMinutes());
|
|
||||||
currentDate.setHours(currentDate.getHours() - new Date().getTimezoneOffset()/60 - 2);
|
|
||||||
const newDatetime = currentDate.toISOString().slice(0, 16);
|
|
||||||
await page.$eval(datetimeSelector, (el, value) => el.value = value, newDatetime);
|
|
||||||
|
|
||||||
await expect(page.locator("#shipmaster-newrowerjs")).toContainText("cox");
|
|
||||||
await expect(page.locator("#steering_person-newrowerjs")).toContainText(
|
|
||||||
"rower2 cox",
|
|
||||||
);
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt erfolgreich hinzugefügt",
|
|
||||||
);
|
|
||||||
await expect(page.locator("body")).toContainText("Joe");
|
|
||||||
|
|
||||||
await page.goto("/log");
|
|
||||||
await page.locator('div:nth-child(2) > .pt-2 > div > div > div:nth-child(2) > .border-0').click(); // 2 trips currently running, try to close second one
|
|
||||||
|
|
||||||
await page.getByRole("combobox", { name: "Destination" }).click();
|
|
||||||
await page.getByRole("combobox", { name: "Destination" }).fill("Ottensheim");
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt beenden" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt korrekt eingetragen",
|
|
||||||
);
|
|
||||||
|
|
||||||
await page.getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await expect(page.locator('body')).toContainText('Joe');
|
|
||||||
await expect(page.locator('body')).toContainText('(cox2)');
|
|
||||||
await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
|
|
||||||
await expect(page.locator('body')).toContainText('Ruderer: cox2, rower2');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.context().clearCookies();
|
|
||||||
await page.goto("/auth");
|
|
||||||
// Login as admin
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("main");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("admin");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/log/show");
|
|
||||||
await page.getByText('(cox2)').click();
|
|
||||||
page.once("dialog", (dialog) => {
|
|
||||||
dialog.accept().catch(() => {});
|
|
||||||
});
|
|
||||||
await page.getByRole('link', { name: 'Löschen' }).click();
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.getByRole('banner').getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await page.getByRole('link', { name: 'Ausloggen' }).click();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("Cox can start and finish trip with cox steering only", async ({ page }, testInfo) => {
|
|
||||||
await page.goto("/auth");
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("cox2");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("cox");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/");
|
|
||||||
await page.getByRole("link", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
if (testInfo.project.name.includes("Mobile")) {
|
|
||||||
// No left boat selector on mobile views
|
|
||||||
await page.getByText('-- Wähle ein Boot aus ---').nth(1).click();
|
|
||||||
await page.getByRole("option", { name: "cox_only_steering_boat" }).click();
|
|
||||||
} else {
|
|
||||||
await page.getByText('2+', { exact: true }).click();
|
|
||||||
await page.getByText("cox_only_steering_boat", { exact: true }).click();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Trip starts 2 hours ago
|
|
||||||
const datetimeSelector = '#departure';
|
|
||||||
const currentValue = await page.$eval(datetimeSelector, el => el.value);
|
|
||||||
const currentDate = new Date(currentValue);
|
|
||||||
currentDate.setMinutes(currentDate.getMinutes());
|
|
||||||
currentDate.setHours(currentDate.getHours() - new Date().getTimezoneOffset()/60 - 2);
|
|
||||||
const newDatetime = currentDate.toISOString().slice(0, 16);
|
|
||||||
await page.$eval(datetimeSelector, (el, value) => el.value = value, newDatetime);
|
|
||||||
|
|
||||||
await expect(page.locator("#shipmaster-newrowerjs")).toContainText("cox");
|
|
||||||
await expect(page.locator("#steering_person-newrowerjs")).toContainText(
|
|
||||||
"cox",
|
|
||||||
);
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt erfolgreich hinzugefügt",
|
|
||||||
);
|
|
||||||
await expect(page.locator("body")).toContainText("cox_only_steering_boat");
|
|
||||||
|
|
||||||
await page.goto("/log");
|
|
||||||
await page.locator("div:nth-child(2) > .border-0").click();
|
|
||||||
|
|
||||||
await page.getByRole("combobox", { name: "Destination" }).click();
|
|
||||||
await page.getByRole("combobox", { name: "Destination" }).fill("Ottensheim");
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt beenden" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt korrekt eingetragen",
|
|
||||||
);
|
|
||||||
|
|
||||||
await page.goto('/log/show');
|
|
||||||
await expect(page.locator('body')).toContainText('cox_only_steering_boat');
|
|
||||||
await expect(page.locator('body')).toContainText('(cox2 - handgesteuert)');
|
|
||||||
await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.getByRole('banner').getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await page.getByRole('link', { name: 'Ausloggen' }).click();
|
|
||||||
// Login as admin
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("main");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("admin");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/log/show");
|
|
||||||
await page.getByText('(cox2 - handgesteuert)').click();
|
|
||||||
page.once("dialog", (dialog) => {
|
|
||||||
dialog.accept().catch(() => {});
|
|
||||||
});
|
|
||||||
await page.getByRole('link', { name: 'Löschen' }).click();
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.getByRole('banner').getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await page.getByRole('link', { name: 'Ausloggen' }).click();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("Kiosk can start and finish trip in one stop", async ({ page }, testInfo) => {
|
|
||||||
await page.goto("/log/kiosk/ekrv2019/Linz");
|
|
||||||
|
|
||||||
if (testInfo.project.name.includes("Mobile")) {
|
|
||||||
// No left boat selector on mobile views
|
|
||||||
await page.getByText('-- Wähle ein Boot aus ---').nth(1).click();
|
|
||||||
await page.getByRole("option", { name: "Joe" }).click();
|
|
||||||
} else {
|
|
||||||
await page.getByText('2x', { exact: true }).click();
|
|
||||||
await page.getByText("Joe", { exact: true }).click();
|
|
||||||
}
|
|
||||||
await page.getByPlaceholder("Ruderer auswählen").click();
|
|
||||||
await page.getByRole("option", { name: "rower2" }).click();
|
|
||||||
await page.getByRole("option", { name: "cox2" }).click();
|
|
||||||
await expect(page.getByRole("listbox")).toContainText(
|
|
||||||
"Nur 2 Ruderer können hinzugefügt werden",
|
|
||||||
);
|
|
||||||
|
|
||||||
// Trip starts 2 hours ago
|
|
||||||
const datetimeSelector = '#departure';
|
|
||||||
const currentValue = await page.$eval(datetimeSelector, el => el.value);
|
|
||||||
const currentDate = new Date(currentValue);
|
|
||||||
currentDate.setMinutes(currentDate.getMinutes());
|
|
||||||
currentDate.setHours(currentDate.getHours() - new Date().getTimezoneOffset()/60 - 2);
|
|
||||||
const newDatetime = currentDate.toISOString().slice(0, 16);
|
|
||||||
await page.$eval(datetimeSelector, (el, value) => el.value = value, newDatetime);
|
|
||||||
|
|
||||||
await page.getByLabel('Ankunftszeit').click();
|
|
||||||
await page.locator('#destination').fill('a');
|
|
||||||
await page.getByLabel('Distanz').fill('1');
|
|
||||||
|
|
||||||
await expect(page.locator("#shipmaster-newrowerjs")).toContainText("cox");
|
|
||||||
await expect(page.locator("#steering_person-newrowerjs")).toContainText(
|
|
||||||
"rower2 cox",
|
|
||||||
);
|
|
||||||
await page.getByRole("button", { name: "Ausfahrt eintragen" }).click();
|
|
||||||
await expect(page.locator("body")).toContainText(
|
|
||||||
"Ausfahrt erfolgreich hinzugefügt",
|
|
||||||
);
|
|
||||||
await page.getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await expect(page.locator('body')).toContainText('Joe');
|
|
||||||
await expect(page.locator('body')).toContainText('(cox2)');
|
|
||||||
await expect(page.locator('body')).toContainText('a (1 km)');
|
|
||||||
await expect(page.locator('body')).toContainText('Ruderer: cox2, rower2');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.context().clearCookies();
|
|
||||||
await page.goto("/auth");
|
|
||||||
// Login as admin
|
|
||||||
await page.getByPlaceholder("Name").click();
|
|
||||||
await page.getByPlaceholder("Name").fill("main");
|
|
||||||
await page.getByPlaceholder("Name").press("Tab");
|
|
||||||
await page.getByPlaceholder("Passwort").fill("admin");
|
|
||||||
await page.getByPlaceholder("Passwort").press("Enter");
|
|
||||||
|
|
||||||
await page.goto("/log/show");
|
|
||||||
await page.getByText('(cox2)').click();
|
|
||||||
page.once("dialog", (dialog) => {
|
|
||||||
dialog.accept().catch(() => {});
|
|
||||||
});
|
|
||||||
await page.getByRole('link', { name: 'Löschen' }).click();
|
|
||||||
|
|
||||||
//Ausloggen...
|
|
||||||
await page.getByRole('banner').getByRole('link', { name: 'Logbuch' }).click();
|
|
||||||
await page.getByRole('link', { name: 'Ausloggen' }).click();
|
|
||||||
});
|
|
Loading…
x
Reference in New Issue
Block a user