import { expect, type Page, test } from "@playwright/test"; import { applyDeterministicPage, useE2EUser } from "./helpers.ts"; test("tenant can review and sign lease documents", async ({ page }: { page: Page }) => { await applyDeterministicPage(page); await useE2EUser(page, "tenant"); await page.goto("/tenant/documents"); await expect(page.getByRole("heading", { name: /documents/i })).toBeVisible(); const leaseRow = page.locator("tbody tr", { hasText: "maple-row-lease.pdf", }).first(); await expect(leaseRow).toBeVisible(); const signButton = leaseRow.getByRole("button", { name: /sign as tenant/i }); if (await signButton.isVisible()) { await signButton.click(); await expect(page).toHaveURL(/\/tenant\/documents/); } const updatedRow = page.locator("tbody tr", { hasText: "maple-row-lease.pdf", }).first(); await expect(updatedRow).toContainText("Signed"); }); test("landlord can review and sign lease documents", async ({ page }: { page: Page }) => { await applyDeterministicPage(page); await useE2EUser(page, "landlord"); await page.goto("/landlord/documents"); await expect( page.getByRole("heading", { name: /lease documents/i }), ).toBeVisible(); const leaseRow = page.locator("tbody tr", { hasText: "maple-row-lease.pdf", }).first(); await expect(leaseRow).toBeVisible(); const signButton = leaseRow.getByRole("button", { name: /sign as landlord/i, }); if (await signButton.isVisible()) { await signButton.click(); await expect(page).toHaveURL(/\/landlord\/documents/); } const updatedRow = page.locator("tbody tr", { hasText: "maple-row-lease.pdf", }).first(); await expect(updatedRow).toContainText("Signed"); });