/// describe('Personalization Flow', () => { beforeEach(() => { // Логинимся перед каждым тестом cy.login(); }); it('should complete personalization flow and open link in new tab', () => { // Ищем нужный квиз и нажимаем редактировать cy.contains('Сочетание перестановки и размещения') .parent() .parent() .contains('Редактировать') .click(); // Переходим на вкладку персонализации cy.contains('Персонализация').click(); // Ждем загрузки данных cy.get('.MuiSkeleton-root', { timeout: 30000 }).should('not.exist'); cy.wait(6000); // Удаляем все существующие ссылки cy.get('body').then(($body) => { if ($body.find('.delete_aud').length > 0) { // Пока есть кнопки удаления - удаляем ссылки const deleteLinks = () => { // Находим первую кнопку удаления и кликаем по ней cy.get('.delete_aud').first().click(); // Подтверждаем удаление cy.get('#delete_OK').click(); // Проверяем, остались ли еще кнопки удаления cy.get('body').then(($body) => { if ($body.find('.delete_aud').length > 0) { deleteLinks(); } }); }; deleteLinks(); } }); // Выбираем пол (М) cy.contains('М').click(); // Генерируем случайный возраст от 1 до 99 const randomAge = Math.floor(Math.random() * 99) + 1; // Вводим возраст cy.get('input[placeholder="Введите возраст"]') .type(randomAge.toString()) .should('have.value', randomAge.toString()); // Нажимаем кнопку Ок cy.contains('Ок').click(); // Ждем появления ссылки и получаем её текст cy.get('.link', { timeout: 30000 }) .should('be.visible') .invoke('text') .then((text) => { // Исправляем домен в ссылке const url = new URL(text); url.hostname = 's.hbpn.link'; const correctUrl = url.toString(); // Переходим на страницу по исправленной ссылке cy.visit(correctUrl); // Проверяем содержимое страницы cy.contains('Сочетание перестановки и размещения').should('exist'); }); }); });