import { test, expect } from '@playwright/test'; import path from 'path'; import { NewsAdminPage } from '../../../../page-objects/NewsAdminPage'; test.describe('Панель администратора — Новости (негативные сценарии)', () => { test('Попытка добавить новость с пустыми полями', async ({ page }) => { const newsPage = new NewsAdminPage(page); await newsPage.loginAsAdmin(); await newsPage.goto(); await newsPage.addEmptyNews(); await expect(newsPage.emptyTitleError).toBeVisible(); await expect(newsPage.emptyContentError).toBeVisible(); }); test('Попытка ввести больше 100 символов в заголовок и 750 в текст', async ({ page }) => { const newsPage = new NewsAdminPage(page); await newsPage.loginAsAdmin(); await newsPage.goto(); await newsPage.addNewsButton.click(); const longTitle = 'A'.repeat(150); const longContent = 'B'.repeat(1000); await newsPage.titleTextarea.fill(longTitle); await newsPage.contentTextarea.fill(longContent); const titleValue = await newsPage.titleTextarea.inputValue(); const contentValue = await newsPage.contentTextarea.inputValue(); expect(titleValue.length).toBeLessThanOrEqual(100); expect(contentValue.length).toBeLessThanOrEqual(750); }); test('Попытка загрузить изображение больше 20 Мб', async ({ page }) => { const newsPage = new NewsAdminPage(page); await newsPage.loginAsAdmin(); await newsPage.goto(); await newsPage.addNewsButton.click(); const largeImagePath = path.resolve(__dirname, '../../../../utils/test-data/image_45mb.png'); await newsPage.fileInput.setInputFiles(largeImagePath); // Проверка на появление ошибки о превышении размера await expect(page.getByText('Размер файла превышает')).toBeVisible(); }); });