34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
/**
|
|
* IFT smoke — учётки из DevOps env (`EventHubDevOps/ift/.env`):
|
|
* `SMOKE_ADMIN_EMAIL` / `SMOKE_ADMIN_PASSWORD` (fallback `ADMIN_SUPER_*`).
|
|
* Локально: `set -a && source …/.env && set +a && npm run test:e2e:ift`
|
|
*/
|
|
function smokeEmail(): string | undefined {
|
|
return process.env.SMOKE_ADMIN_EMAIL || process.env.ADMIN_SUPER_EMAIL || process.env.E2E_ADMIN_EMAIL;
|
|
}
|
|
|
|
function smokePassword(): string | undefined {
|
|
return (
|
|
process.env.SMOKE_ADMIN_PASSWORD ||
|
|
process.env.ADMIN_SUPER_PASSWORD ||
|
|
process.env.E2E_ADMIN_PASSWORD
|
|
);
|
|
}
|
|
|
|
test.describe('IFT smoke', () => {
|
|
test.skip(!smokeEmail() || !smokePassword(), 'SMOKE_ADMIN_* (или ADMIN_SUPER_*) из IFT/stage .env required');
|
|
|
|
test('login → dashboard → logout', async ({ page }) => {
|
|
await page.goto('/login');
|
|
await page.getByLabel(/email/i).fill(smokeEmail()!);
|
|
await page.getByLabel(/пароль|password/i).fill(smokePassword()!);
|
|
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();
|
|
});
|
|
});
|