Initialize fork and rebrand app to event_manager
CI / Server (push) Has been cancelled
Linters / Frappe Linter (push) Has been cancelled
Linters / Vulnerable Dependency Check (push) Has been cancelled
UI Tests / Playwright E2E Tests (push) Has been cancelled

This commit is contained in:
2026-05-11 09:56:57 +02:00
parent f82bb803ac
commit 786cbc724f
500 changed files with 41152 additions and 2 deletions
+86
View File
@@ -0,0 +1,86 @@
import { test, expect } from "@playwright/test";
import { BookingPage } from "../pages";
const uid = Date.now();
test.describe("Offline Payment Flow", () => {
test("complete booking with offline payment", async ({ page }) => {
const email = `offline-${uid}@test.com`;
const bookingPage = new BookingPage(page);
await bookingPage.goto("offline-payment-e2e");
await bookingPage.waitForFormLoad();
// Fill attendee details
await page.locator('input[placeholder="Enter first name"]').first().fill("Test");
await page.locator('input[placeholder="Enter last name"]').first().fill("User");
await page.locator('input[placeholder="Enter email address"]').first().fill(email);
// Submit booking form
await bookingPage.submit();
// Wait for offline payment dialog
await expect(page.getByText("Bank Transfer")).toBeVisible({ timeout: 10000 });
await expect(page.getByText("Transfer to Account: 123456789")).toBeVisible();
// Submit offline payment (no file upload required in test setup)
const submitButton = page.getByRole("button", { name: "Submit" });
await submitButton.click();
// Verify booking created with verification pending status
await expect(page.getByText("Payment Confirmation Pending")).toBeVisible({ timeout: 30000 });
});
test("offline payment dialog shows amount", async ({ page }) => {
const bookingPage = new BookingPage(page);
await bookingPage.goto("offline-payment-e2e");
await bookingPage.waitForFormLoad();
await page.locator('input[placeholder="Enter first name"]').first().fill("Amount");
await page.locator('input[placeholder="Enter last name"]').first().fill("Test");
await page.locator('input[placeholder="Enter email address"]').first().fill(`amount-${uid}@test.com`);
await bookingPage.submit();
// Wait for dialog and verify amount is displayed in dialog
const dialog = page.getByRole("dialog");
await expect(dialog.getByText("₹500.00", { exact: true })).toBeVisible({ timeout: 10000 });
});
test("can cancel offline payment dialog", async ({ page }) => {
const bookingPage = new BookingPage(page);
await bookingPage.goto("offline-payment-e2e");
await bookingPage.waitForFormLoad();
await page.locator('input[placeholder="Enter first name"]').first().fill("Cancel");
await page.locator('input[placeholder="Enter last name"]').first().fill("Test");
await page.locator('input[placeholder="Enter email address"]').first().fill(`cancel-${uid}@test.com`);
await bookingPage.submit();
await expect(page.getByText("Bank Transfer")).toBeVisible({ timeout: 10000 });
// Click cancel
await page.getByRole("button", { name: "Cancel" }).click();
// Dialog should close
await expect(page.getByText("Bank Transfer")).not.toBeVisible({ timeout: 5000 });
});
});
test.describe("Booking Details - Offline Payment", () => {
test("shows verification pending status", async ({ page }) => {
// This test assumes a booking already exists
// Navigate to bookings list
await page.goto("/dashboard/bookings");
await page.waitForLoadState("networkidle");
// Look for verification pending badge
const pendingBadge = page.locator('text=/Verification Pending|Approval Pending/i').first();
if (await pendingBadge.isVisible({ timeout: 5000 })) {
await expect(pendingBadge).toBeVisible();
}
});
});