# Test info - Name: Панель администратора — Новости (негативные сценарии редактирования) >> Попытка загрузить изображение больше 20 Мб при редактировании - Location: /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-update-negative.spec.ts:56:7 # Error details ``` Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: getByText('Размер файла превышает') Expected: visible Received: Call log: - expect.toBeVisible with timeout 5000ms - waiting for getByText('Размер файла превышает') at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-update-negative.spec.ts:73:60 ``` # Page snapshot ```yaml - main: - main: - button - button "Скрыть Close": - text: Скрыть - img "Close" - list: - listitem: - text: Личный кабинет - img "Arrow" - listitem: - text: Главная - img "Arrow" - listitem: - text: Автору - img "Arrow" - listitem: - text: Новости - img "Arrow" - listitem: - text: Участники - img "Arrow" - listitem: - text: Оргкомитет - img "Arrow" - paragraph: 02.07.2025 - paragraph: Этап - img - paragraph: Панель администратора - list: - link "Новости": - /url: /adminPage/news - listitem: - img - text: Новости - link "Конференция": - /url: /adminPage/conferences - listitem: - img - text: Конференция - link "Оргкомитет": - /url: /adminPage/committee - listitem: - img - text: Оргкомитет - link "Участники": - /url: /adminPage/participants - listitem: - img - text: Участники - link "Оргвзнос": - /url: /adminPage/payment - listitem: - img - text: Оргвзнос - link "Архив фото": - /url: /adminPage/photoalbums - listitem: - img - text: Архив фото - link "Архив сборников": - /url: /adminPage/collections - listitem: - img - text: Архив сборников - link "Организаторы и партнёры": - /url: /adminPage/organizerspartners - listitem: - img - text: Организаторы и партнёры - button "Назад Добавление новости": - img "Назад" - text: Добавление новости - text: Заголовок новости - textbox "Заголовок": Новость 1751389484264 - text: 21/100 Текст новости - textbox "Текст новости": Текст для проверки большого изображения - text: 39/750 Фотография для новости - img "Фото загруженно" - button "Удалить файл": - img "Удалить файл" - button "Удалить": - text: Удалить - img - button "Сохранить" - paragraph: Всероссийская научная конференция "Системный синтез и прикладная синергетика" - paragraph: 19 - 26 июня 2025 года Таганрог - paragraph: "Напишите нам:" - paragraph: - text: "e-mail:" - link "ssas@ictis.sfedu.ru": - /url: mailto:ssas@ictis.sfedu.ru - text: Сайт разработан Центром исследований и разработки ИКТИБ - link "Ознакомиться с руководством пользователя": - /url: /static/media/user_manual.6c3dacbaa294cf625b5b.pdf ``` # Test source ```ts 1 | import { test, expect } from '@playwright/test'; 2 | import path from 'path'; 3 | import { NewsAdminPage } from '../../../../page-objects/NewsAdminPage'; 4 | 5 | test.describe('Панель администратора — Новости (негативные сценарии редактирования)', () => { 6 | 7 | test('Очистка полей при редактировании и сохранение', async ({ page }) => { 8 | const newsPage = new NewsAdminPage(page); 9 | await newsPage.loginAsAdmin(); 10 | await newsPage.goto(); 11 | 12 | const title = `Новость ${Date.now()}`; 13 | const content = 'Текст для редактирования'; 14 | const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png'); 15 | 16 | await newsPage.addNews({ title, content, imagePath }); 17 | await expect(newsPage.newsTable).toContainText(title); 18 | 19 | await newsPage.clickEditButtonForNews(title); 20 | 21 | await newsPage.titleTextarea.fill(''); 22 | await newsPage.contentTextarea.fill(''); 23 | await page.getByRole('button', { name: 'Сохранить' }).click(); 24 | 25 | await expect(newsPage.emptyTitleError).toBeVisible(); 26 | await expect(newsPage.emptyContentError).toBeVisible(); 27 | }); 28 | 29 | test('Попытка ввести слишком длинные заголовок и текст при редактировании', async ({ page }) => { 30 | const newsPage = new NewsAdminPage(page); 31 | await newsPage.loginAsAdmin(); 32 | await newsPage.goto(); 33 | 34 | const title = `Новость ${Date.now()}`; 35 | const content = 'Текст для проверки длинного текста'; 36 | const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png'); 37 | 38 | await newsPage.addNews({ title, content, imagePath }); 39 | await expect(newsPage.newsTable).toContainText(title); 40 | 41 | await newsPage.clickEditButtonForNews(title); 42 | 43 | const longTitle = 'A'.repeat(150); 44 | const longContent = 'B'.repeat(1000); 45 | 46 | await newsPage.titleTextarea.fill(longTitle); 47 | await newsPage.contentTextarea.fill(longContent); 48 | 49 | const titleValue = await newsPage.titleTextarea.inputValue(); 50 | const contentValue = await newsPage.contentTextarea.inputValue(); 51 | 52 | expect(titleValue.length).toBeLessThanOrEqual(100); 53 | expect(contentValue.length).toBeLessThanOrEqual(750); 54 | }); 55 | 56 | test('Попытка загрузить изображение больше 20 Мб при редактировании', async ({ page }) => { 57 | const newsPage = new NewsAdminPage(page); 58 | await newsPage.loginAsAdmin(); 59 | await newsPage.goto(); 60 | 61 | const title = `Новость ${Date.now()}`; 62 | const content = 'Текст для проверки большого изображения'; 63 | const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png'); 64 | 65 | await newsPage.addNews({ title, content, imagePath }); 66 | await expect(newsPage.newsTable).toContainText(title); 67 | 68 | await newsPage.clickEditButtonForNews(title); 69 | 70 | const largeImagePath = path.resolve(__dirname, '../../../../utils/test-data/image_45mb.png'); 71 | await newsPage.fileInput.setInputFiles(largeImagePath); 72 | > 73 | await expect(page.getByText('Размер файла превышает')).toBeVisible(); | ^ Error: Timed out 5000ms waiting for expect(locator).toBeVisible() 74 | }); 75 | 76 | }); 77 | ```