202 lines
7.9 KiB
Markdown
202 lines
7.9 KiB
Markdown
# 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: <element(s) not found>
|
||
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 |
|
||
``` |