mirror of
https://github.com/TronoSfera/Law.git
synced 2026-05-18 10:03:45 +03:00
57 lines
2.9 KiB
JavaScript
57 lines
2.9 KiB
JavaScript
const { test, expect } = require("@playwright/test");
|
|
const {
|
|
preparePublicSession,
|
|
openPublicCabinet,
|
|
randomPhone,
|
|
trackCleanupPhone,
|
|
trackCleanupTrack,
|
|
cleanupTrackedTestData,
|
|
loginAdminPanel,
|
|
} = require("./helpers");
|
|
|
|
test.afterEach(async ({ page }, testInfo) => {
|
|
await cleanupTrackedTestData(page, testInfo);
|
|
});
|
|
|
|
test("service requests UI flow: client creates requests -> admin sees them in Requests tab", async ({ context, page }, testInfo) => {
|
|
const appUrl = process.env.E2E_BASE_URL || "http://localhost:8081";
|
|
const phone = randomPhone();
|
|
trackCleanupPhone(testInfo, phone);
|
|
|
|
await preparePublicSession(context, page, appUrl, phone);
|
|
const createResponse = await page.request.post(`${appUrl}/api/public/requests`, {
|
|
data: {
|
|
client_name: `Клиент E2E ${Date.now()}`,
|
|
client_phone: phone,
|
|
topic_code: "consulting",
|
|
description: "E2E проверка клиентских обращений к куратору и смены юриста.",
|
|
},
|
|
failOnStatusCode: false,
|
|
});
|
|
expect(createResponse.ok()).toBeTruthy();
|
|
const createBody = await createResponse.json();
|
|
const trackNumber = String(createBody.track_number || "");
|
|
expect(trackNumber.startsWith("TRK-")).toBeTruthy();
|
|
trackCleanupTrack(testInfo, trackNumber);
|
|
await openPublicCabinet(page, trackNumber);
|
|
|
|
await page.locator("#cabinet-curator-request-open").click();
|
|
await expect(page.locator("#service-request-overlay")).toHaveClass(/open/);
|
|
await page.locator("#service-request-body").fill("Нужна консультация куратора по делу.");
|
|
await page.locator("#service-request-send").click();
|
|
await expect(page.locator("#client-page-status")).toContainText("Обращение отправлено.");
|
|
await expect(page.locator("#cabinet-service-requests")).toContainText("Запрос к куратору");
|
|
|
|
await page.locator("#cabinet-lawyer-change-open").click();
|
|
await expect(page.locator("#service-request-overlay")).toHaveClass(/open/);
|
|
await page.locator("#service-request-body").fill("Прошу рассмотреть смену юриста.");
|
|
await page.locator("#service-request-send").click();
|
|
await expect(page.locator("#client-page-status")).toContainText("Обращение отправлено.");
|
|
await expect(page.locator("#cabinet-service-requests")).toContainText("Смена юриста");
|
|
|
|
await loginAdminPanel(page, { email: "admin@example.com", password: "admin123" });
|
|
await page.locator("aside .menu button[data-section='serviceRequests']").click();
|
|
await expect(page.locator("#section-service-requests h2")).toHaveText("Запросы");
|
|
await expect(page.locator("#section-service-requests table")).toContainText("Нужна консультация куратора");
|
|
await expect(page.locator("#section-service-requests table")).toContainText("Прошу рассмотреть смену юриста");
|
|
});
|