init: базовая структура АТ
This commit is contained in:
62
tests/api/registration/register-applicant.api.spec.ts
Normal file
62
tests/api/registration/register-applicant.api.spec.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
import axios from 'axios';
|
||||
import {
|
||||
createTempEmail,
|
||||
waitForConfirmationCode
|
||||
} from '../../../utils/mailTmApi';
|
||||
import {
|
||||
generateFirstName,
|
||||
generateLastName,
|
||||
generateMiddleName,
|
||||
generateLogin,
|
||||
generatePhone,
|
||||
} from '../../../utils/userGenerator';
|
||||
|
||||
const BASE_URL = 'https://rumc.dev.rdcenter.ru/api';
|
||||
|
||||
test('API: регистрация абитуриента + подтверждение почты', async () => {
|
||||
const { email, token: mailToken } = await createTempEmail();
|
||||
|
||||
const surname = generateLastName();
|
||||
const name = generateFirstName();
|
||||
const patronymic = generateMiddleName();
|
||||
const fullName = `${surname} ${name} ${patronymic}`;
|
||||
const login = generateLogin();
|
||||
const phone = '+7 (900) 000-00-00';
|
||||
|
||||
const registerPayload = {
|
||||
role: 'APPLICANT',
|
||||
type: 'INDIVIDUAL',
|
||||
login,
|
||||
fullName,
|
||||
email,
|
||||
password: '!Test123456',
|
||||
phone,
|
||||
approval: true
|
||||
};
|
||||
|
||||
//const registerRes = await axios.post(`${BASE_URL}/auth/register`, registerPayload);
|
||||
//expect(registerRes.status).toBe(201);
|
||||
try {
|
||||
const registerRes = await axios.post(`${BASE_URL}/auth/register`, registerPayload);
|
||||
expect(registerRes.status).toBe(201);
|
||||
|
||||
} catch (error: any) {
|
||||
console.error('❌ Ошибка регистрации:', error.response?.data || error.message);
|
||||
throw error;
|
||||
}
|
||||
|
||||
console.log('📬 Ожидание письма с кодом подтверждения...');
|
||||
const code = await waitForConfirmationCode(mailToken, 60000);
|
||||
console.log('✅ Код получен:', code);
|
||||
|
||||
const confirmPayload = {
|
||||
email,
|
||||
code
|
||||
};
|
||||
|
||||
const confirmRes = await axios.post(`${BASE_URL}/auth/confirm`, confirmPayload);
|
||||
expect(confirmRes.status).toBe(200);
|
||||
|
||||
console.log('🎉 Почта подтверждена успешно');
|
||||
});
|
||||
54
tests/ui/registration/register-applicant.spec.ts
Normal file
54
tests/ui/registration/register-applicant.spec.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
// Позитивный тест регистрации абитуриента
|
||||
// Включает в себя:
|
||||
// Ввод валидных тестовых данных
|
||||
// Получение кода в письме
|
||||
// Ввод кода из письма (is_confirm)
|
||||
// Переход на главную
|
||||
|
||||
import { test, expect } from '@playwright/test';
|
||||
import { RegisterPage } from '../../../page-objects/RegisterPage';
|
||||
import {
|
||||
generateFirstName,
|
||||
generateLastName,
|
||||
generateMiddleName,
|
||||
generateLogin,
|
||||
generatePhone,
|
||||
} from '../../../utils/userGenerator';
|
||||
import {
|
||||
createTempEmail,
|
||||
waitForConfirmationCode
|
||||
} from '../../../utils/mailTmApi';
|
||||
|
||||
test('Полная регистрация абитуриента с подтверждением почты', async ({ page }) => {
|
||||
const registerPage = new RegisterPage(page);
|
||||
|
||||
const { email, token } = await createTempEmail();
|
||||
|
||||
const firstName = generateFirstName();
|
||||
const lastName = generateLastName();
|
||||
const middleName = generateMiddleName();
|
||||
const login = generateLogin();
|
||||
const phone = generatePhone();
|
||||
const password = '!Test123456';
|
||||
|
||||
await registerPage.goto();
|
||||
await registerPage.fillLastName(lastName);
|
||||
await registerPage.fillFirstName(firstName);
|
||||
await registerPage.fillMiddleName(middleName);
|
||||
await registerPage.fillEmail(email);
|
||||
await registerPage.fillLogin(login);
|
||||
await registerPage.fillPhone(phone);
|
||||
await registerPage.fillPassword(password);
|
||||
await registerPage.fillPasswordRepeat(password);
|
||||
await registerPage.checkConsentCheckbox();
|
||||
await registerPage.submit();
|
||||
|
||||
await expect(page).toHaveURL(/confirmation-code/);
|
||||
const code = await waitForConfirmationCode(token, 60000);
|
||||
|
||||
await page.fill('input[name="code"]', code);
|
||||
await page.click('button.RecoverPassword_button__5QDxM');
|
||||
|
||||
await expect(page).toHaveURL('https://rumc.dev.rdcenter.ru');
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user