import { test, expect } from '@playwright/test'; /** * IFT smoke — заполняется секретами E2E_ADMIN_EMAIL / E2E_ADMIN_PASSWORD. * Запуск: `npm run test:e2e:ift` (без моков). */ test.describe('IFT smoke', () => { test.skip(!process.env.E2E_ADMIN_EMAIL || !process.env.E2E_ADMIN_PASSWORD, 'E2E_ADMIN_* secrets required'); test('login → dashboard → logout', async ({ page }) => { await page.goto('/login'); await page.getByLabel(/email/i).fill(process.env.E2E_ADMIN_EMAIL!); await page.getByLabel(/пароль|password/i).fill(process.env.E2E_ADMIN_PASSWORD!); await page.getByTestId('btn-login').click(); await expect(page.getByTestId('layout-shell')).toBeVisible({ timeout: 30_000 }); await page.getByTestId('menu-user').click(); await page.getByTestId('btn-logout').click(); await expect(page.getByTestId('page-login')).toBeVisible(); }); });