Реализован файл с негативными сценариями для редактирования новостей
This commit is contained in:
81
tests/ui/admin/news/admin-news-update-negative.spec.ts
Normal file
81
tests/ui/admin/news/admin-news-update-negative.spec.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
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();
|
||||
|
||||
const title = `Новость ${Date.now()}`;
|
||||
const content = 'Текст для редактирования';
|
||||
const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png');
|
||||
|
||||
await newsPage.addNews({ title, content, imagePath });
|
||||
await expect(newsPage.newsTable).toContainText(title);
|
||||
|
||||
await newsPage.clickEditButtonForNews(title);
|
||||
|
||||
await newsPage.titleTextarea.fill('');
|
||||
await newsPage.contentTextarea.fill('');
|
||||
await page.getByRole('button', { name: 'Сохранить' }).click();
|
||||
|
||||
await expect(newsPage.emptyTitleError).toBeVisible();
|
||||
await expect(newsPage.emptyContentError).toBeVisible();
|
||||
});
|
||||
|
||||
test('Попытка ввести слишком длинные заголовок и текст при редактировании', async ({ page }) => {
|
||||
const newsPage = new NewsAdminPage(page);
|
||||
await newsPage.loginAsAdmin();
|
||||
await newsPage.goto();
|
||||
|
||||
const title = `Новость ${Date.now()}`;
|
||||
const content = 'Текст для проверки длинного текста';
|
||||
const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png');
|
||||
|
||||
await newsPage.addNews({ title, content, imagePath });
|
||||
await expect(newsPage.newsTable).toContainText(title);
|
||||
|
||||
await newsPage.clickEditButtonForNews(title);
|
||||
|
||||
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();
|
||||
|
||||
const title = `Новость ${Date.now()}`;
|
||||
const content = 'Текст для проверки большого изображения';
|
||||
const imagePath = path.resolve(__dirname, '../../../../utils/test-data/image_1mb.png');
|
||||
|
||||
await newsPage.addNews({ title, content, imagePath });
|
||||
await expect(newsPage.newsTable).toContainText(title);
|
||||
|
||||
await newsPage.clickEditButtonForNews(title);
|
||||
|
||||
// Удаляем старое изображение
|
||||
await newsPage.deleteExistingImage();
|
||||
|
||||
// Пробуем загрузить большое
|
||||
const largeImagePath = path.resolve(__dirname, '../../../../utils/test-data/image_45mb.png');
|
||||
await newsPage.fileInput.setInputFiles(largeImagePath);
|
||||
|
||||
// Проверяем появление ошибки
|
||||
await expect(page.getByText('Размер файла превышает')).toBeVisible();
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user