import { test, expect } from "@playwright/test"; test("Cox can start and cancel trip", async ({ page }, testInfo) => { await page.goto("http://localhost:8000/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("http://localhost:8000/"); await page.getByRole("link", { name: "Ausfahrt eintragen" }).click(); if (testInfo.project.name.includes("Mobile")) { // No left boat selector on mobile views await page.getByText("Kaputtes Boot :-( (7 x)").nth(1).click(); await page.getByRole("option", { name: "Joe" }).click(); } else { 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("Cox can start and finish trip", async ({ page }, testInfo) => { await page.goto("http://localhost:8000/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("http://localhost:8000/"); await page.getByRole("link", { name: "Ausfahrt eintragen" }).click(); if (testInfo.project.name.includes("Mobile")) { // No left boat selector on mobile views await page.getByText("Kaputtes Boot :-( (7 x)").nth(1).click(); await page.getByRole("option", { name: "Joe" }).click(); } else { 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.goto("http://localhost:8000/log"); await page.waitForTimeout(60000); 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", ); });