import { test, expect } from '@playwright/test'; import path from 'path'; test.describe('Панель администратора — Новости (позитивный сценарий)', () => { test('Успешное добавление новости с изображением', async ({ page }) => { // 1. Авторизация как администратор await page.goto('https://ssas.dev.rdcenter.ru/login/authorization'); await page.getByPlaceholder('Email').fill('admin@sfedu.ru'); await page.getByPlaceholder('Пароль').fill('dfDk1oQQ6YGV@'); await page.getByRole('button', { name: 'Войти', exact: true }).click(); // 2. Переход в раздел "Панель администратора" → "Новости" await page.waitForURL('**/'); await page.getByText('Панель администратора').click(); await page.waitForURL('**/adminPage/news'); // 3. Нажатие кнопки "Добавить новость" await page.getByRole('button', { name: 'Добавить новость' }).click(); // 4. Заполнение формы const title = `Тестовая новость ${Date.now()}`; const content = 'Это автотестовая новость для проверки добавления.'; const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png'); await page.getByPlaceholder('Заголовок').fill(title); await page.getByPlaceholder('Текст новости').fill(content); // 5. Загрузка изображения const fileInput = await page.locator('input[type="file"]'); await fileInput.setInputFiles(imagePath); await page.getByRole('button', { name: 'Сохранить' }).click(); // 6. Нажатие на кнопку "Добавить" await page.getByRole('button', { name: 'Добавить' }).click(); // 7. Проверка, что новость появилась в списке await expect(page.locator('table')).toContainText(title); }); });