Реализован файл с негативными сценариями для редактирования новостей

This commit is contained in:
Vlad Smykov
2025-07-01 20:34:24 +03:00
parent 4f98a8fd52
commit 8a0f57dd94
51 changed files with 1309 additions and 0 deletions

View 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();
});
});