# 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: expect(locator).toContainText(expected) Locator: locator('table') Expected string: "Новость 1751391119643" Received string: "" Call log: - expect.toContainText with timeout 5000ms - waiting for locator('table') at /Users/vladsmykov/Desktop/Work/AUTOTESTS/CCPC_playwright/tests/ui/admin/news/admin-news-update-negative.spec.ts:66:38 ``` # 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); | ^ Error: expect(locator).toContainText(expected) 67 | 68 | await newsPage.clickEditButtonForNews(title); 69 | 70 | // Удаляем старое изображение 71 | await newsPage.deleteExistingImage(); 72 | 73 | // Пробуем загрузить большое 74 | const largeImagePath = path.resolve(__dirname, '../../../../utils/test-data/image_45mb.png'); 75 | await newsPage.fileInput.setInputFiles(largeImagePath); 76 | 77 | // Проверяем появление ошибки 78 | await expect(page.getByText('Размер файла превышает')).toBeVisible(); 79 | }); 80 | 81 | }); 82 | ```