import { test, expect } from '@playwright/test'; import fs from 'fs'; import path from 'path'; import { LoginPage } from '../../../page-objects/LoginPage'; import { ProfileApplicantPage } from '../../../page-objects/UsersAccount/ProfileApplicantPage'; test.describe('UI: Личный кабинет абитуриента', () => { test.beforeEach(async ({ page }) => { const user = JSON.parse(fs.readFileSync('temp/user.json', 'utf-8')); const loginPage = new LoginPage(page); const profilePage = new ProfileApplicantPage(page); await loginPage.goto(); await loginPage.fillLogin(user.login); await loginPage.fillPassword(user.password); await loginPage.submit(); await expect(page).toHaveURL(/.*\/account\/profile/); await profilePage.goto(); }); test('UI: Личный кабинет абитуриента — заполнение профиля', async ({ page }) => { const loginPage = new LoginPage(page); const profilePage = new ProfileApplicantPage(page); await profilePage.openBasicInfoEditor(); await profilePage.uploadAvatar(path.resolve('fixtures', 'avatar.png')); await profilePage.fillCity('Таганрог'); await profilePage.saveBasicInfo(); await profilePage.openRepresentativeEditor(); await profilePage.fillRepresentative( 'Мать', 'Иванова Мария Петровна', '+7 (900) 123-45-67' ); await profilePage.saveRepresentative(); await profilePage.openDisabilityEditor(); await profilePage.selectDisability('Нарушение слуха'); await profilePage.selectDisabilityGroup('I группа'); await profilePage.saveDisabilityInfo(); await expect(page).toHaveURL(/.*\/account\/profile/); }); test('UI: Личный кабинет абитуриента — прохождение теста', async ({ page }) => { const loginPage = new LoginPage(page); const profilePage = new ProfileApplicantPage(page); await profilePage.openTestsPage(); await expect(page.getByRole('button', { name: 'Посмотреть результаты' })).toBeVisible(); }); test('UI: Личный кабинет абитуриента — заполнение портфолио', async ({ page }) => { const loginPage = new LoginPage(page); const profilePage = new ProfileApplicantPage(page); //Достижения await profilePage.openPortfolioPage(); await profilePage.clickAchievementButton(); await profilePage.fillAchievementInfo(); await profilePage.uploadAchievement(path.resolve('fixtures', 'achievement_information.pdf')); await profilePage.clickAchievementSaveButton(); await expect(page.getByRole('heading', { name: 'Тестовое достижение' })).toBeVisible(); await expect(page.getByText('2026', { exact: true })).toBeVisible(); await expect(page.getByRole('link', { name: 'achievement_information.pdf' })).toBeVisible(); //Образование await profilePage.clickEducationButton(); await profilePage.fillEducationInfo(); await profilePage.uploadEducation(path.resolve('fixtures', 'education_information.pdf')); await profilePage.clickEducationSaveButton(); await expect(page.getByRole('heading', { name: 'Тестовое заведение' })).toBeVisible(); await expect(page.getByRole('heading', { name: 'Тестовая специальность' })).toBeVisible(); await expect(page.getByText('- 2026')).toBeVisible(); await expect(page.getByText('Форма обучения: Очная')).toBeVisible(); await expect(page.getByText('Основа обучения: Бюджет')).toBeVisible(); await expect(page.getByText('Уровень образования: Бакалавриат')).toBeVisible(); //Опыт работы await profilePage.clickWorkExpButton(); await profilePage.fillWorkExpInfo(); await profilePage.uploadWorkExp(path.resolve('fixtures', 'workExp_information.pdf')); await profilePage.clickWorkExpSaveButton(); //Дополнительные ссылки await profilePage.clickAdditionalLinksButton(); await profilePage.fillAdditionalLinksInfo(); await profilePage.clickAdditionalLinksSaveButton(); }) })