Apply patch [skip ci]
This commit is contained in:
parent
85618da0dc
commit
04649fb6e2
40
tests/e2e/lease-creation.spec.ts
Normal file
40
tests/e2e/lease-creation.spec.ts
Normal file
@ -0,0 +1,40 @@
|
||||
import { expect, Page, test } from "@playwright/test";
|
||||
import { applyDeterministicPage, e2eHeaders, useE2EUser } from "./helpers.ts";
|
||||
|
||||
test("lease acceptance workflow (E2E fixtures)", async ({ page }: { page: Page }) => {
|
||||
await applyDeterministicPage(page);
|
||||
|
||||
// Landlord side: navigate to leased homes
|
||||
await useE2EUser(page, "landlord");
|
||||
await page.goto("/landlord/dashboard");
|
||||
const link = page.getByRole("link", { name: /create new lease/i });
|
||||
if (await link.count()) {
|
||||
await link.click();
|
||||
} else {
|
||||
await page.goto("/leased-home");
|
||||
}
|
||||
await expect(page.getByRole("heading", { name: /leased homes/i })).toBeVisible();
|
||||
|
||||
// Create an invite for an existing e2e lease (server-side fixture)
|
||||
const inviteResp = await page.request.post("/api/update/lease_invite", {
|
||||
headers: { "Content-Type": "application/json", ...e2eHeaders("landlord") },
|
||||
data: { lease_id: "e2e-lease-1" },
|
||||
});
|
||||
expect(inviteResp.ok()).toBeTruthy();
|
||||
|
||||
// Tenant accepts the lease
|
||||
await useE2EUser(page, "tenant");
|
||||
const acceptResp = await page.request.post("/api/update/lease_accept", {
|
||||
headers: { "Content-Type": "application/json", ...e2eHeaders("tenant") },
|
||||
data: { lease_id: "e2e-lease-1" },
|
||||
});
|
||||
expect(acceptResp.ok()).toBeTruthy();
|
||||
|
||||
const body = await acceptResp.json();
|
||||
expect(body?.success).toBeTruthy();
|
||||
// The response may include the updated lease; ensure status is active if present
|
||||
const lease = body?.lease;
|
||||
if (lease) {
|
||||
expect(lease.lease_status === "active").toBeTruthy();
|
||||
}
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user