feat(admin): E2E mock-сьюты inbox/reports/reviews + testids. Refs EventHub/EventHubFrontAdmin#33 #36
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { seedAuthenticatedSession } from '../helpers/session';
|
||||
|
||||
test.describe('inbox reports (mock)', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await seedAuthenticatedSession(page);
|
||||
});
|
||||
|
||||
test('очередь pending, select и reviewed', async ({ page }) => {
|
||||
await page.goto('/inbox/reports');
|
||||
await expect(page.getByTestId('page-inbox-reports')).toBeVisible();
|
||||
await expect(page.getByTestId('report-row-rpt-pending-1')).toBeVisible();
|
||||
await expect(page.getByTestId('report-row-rpt-done-1')).toHaveCount(0);
|
||||
|
||||
await page.getByTestId('report-select-rpt-pending-1').click();
|
||||
await expect(page.getByTestId('inbox-report-detail')).toBeVisible();
|
||||
await page.getByTestId('btn-report-reviewed').click();
|
||||
await expect(page.getByTestId('report-row-rpt-pending-1')).toHaveCount(0);
|
||||
});
|
||||
|
||||
test('filter all показывает reviewed', async ({ page }) => {
|
||||
await page.goto('/inbox/reports');
|
||||
await page.getByTestId('filter-all').click();
|
||||
await expect(page.getByTestId('report-row-rpt-done-1')).toBeVisible();
|
||||
});
|
||||
|
||||
test('bulk dismissed', async ({ page }) => {
|
||||
await page.goto('/inbox/reports');
|
||||
await page.getByTestId('report-check-rpt-pending-1').check();
|
||||
await page.getByTestId('report-check-rpt-pending-2').check();
|
||||
await page.getByTestId('btn-bulk-dismissed').click();
|
||||
await expect(page.getByTestId('report-row-rpt-pending-1')).toHaveCount(0);
|
||||
await expect(page.getByTestId('report-row-rpt-pending-2')).toHaveCount(0);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('inbox tickets (mock)', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await seedAuthenticatedSession(page);
|
||||
});
|
||||
|
||||
test('open → in_progress → resolved', async ({ page }) => {
|
||||
await page.goto('/inbox/tickets');
|
||||
await expect(page.getByTestId('page-inbox-tickets')).toBeVisible();
|
||||
await page.getByTestId('ticket-row-tkt-open-1').click();
|
||||
await page.getByTestId('btn-ticket-in-progress').click();
|
||||
await expect(page.getByTestId('btn-ticket-resolved')).toBeVisible();
|
||||
await page.getByTestId('btn-ticket-resolved').click();
|
||||
// resolved leaves active queue
|
||||
await expect(page.getByTestId('ticket-row-tkt-open-1')).toHaveCount(0);
|
||||
await page.getByTestId('filter-all').click();
|
||||
await expect(page.getByTestId('ticket-row-tkt-open-1')).toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('reports explore (mock)', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await seedAuthenticatedSession(page);
|
||||
});
|
||||
|
||||
test('список и detail reviewed с confirm', async ({ page }) => {
|
||||
await page.goto('/reports');
|
||||
await expect(page.getByTestId('page-reports')).toBeVisible();
|
||||
await page.goto('/reports/rpt-pending-1');
|
||||
await expect(page.getByTestId('page-report-detail')).toBeVisible();
|
||||
await page.getByTestId('btn-report-reviewed').click();
|
||||
await expect(page.getByTestId('dialog-confirm-report-status')).toBeVisible();
|
||||
await page.getByTestId('btn-confirm-status').click();
|
||||
await expect(page.getByTestId('btn-report-reviewed')).toHaveCount(0);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('reviews explore (mock)', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await seedAuthenticatedSession(page);
|
||||
});
|
||||
|
||||
test('страница reviews рендерится, bulk отключён без выбора', async ({ page }) => {
|
||||
await page.goto('/reviews');
|
||||
await expect(page.getByTestId('page-reviews')).toBeVisible();
|
||||
await expect(page.getByText('Great event')).toBeVisible();
|
||||
await expect(page.getByTestId('btn-reviews-bulk-hidden')).toBeDisabled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user