Files
playwright-tests-ssas/tests/ui/admin/news/admin-news-update-negative.spec.ts

82 lines
3.4 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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();
});
});