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'); });