import { test, expect } from '@playwright/test'; import fs from 'fs'; 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); fs.writeFileSync('temp/user.json', JSON.stringify({ email, password: '!Test123456', mailToken })); const userId = registerRes.data.id; console.log('🆔 ID зарегистрированного пользователя:', userId); } catch (error: any) { console.error('❌ Ошибка регистрации:', error.response?.data || error.message); throw error; } console.log('📬 Ожидание письма с кодом подтверждения...'); const code = await waitForConfirmationCode(email, mailToken, 'register', 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('🎉 Почта подтверждена успешно'); });