/// describe('Personalization Flow', () => { beforeEach(() => { // Логинимся перед каждым тестом cy.login(); // Предполагается, что у вас есть команда для логина }); it('should complete personalization flow and open link in new tab', () => { // Переходим на страницу персонализации cy.visit('/personalization'); // Выбираем пол (мужской) cy.get('[data-testid="gender-male"]').click(); // Генерируем случайный возраст от 1 до 99 const randomAge = Math.floor(Math.random() * 99) + 1; // Вводим возраст cy.get('[data-testid="age-input"]') .type(randomAge.toString()) .should('have.value', randomAge.toString()); // Нажимаем кнопку OK cy.get('[data-testid="submit-button"]').click(); // Ждем появления скелетона загрузки cy.get('[data-testid="loading-skeleton"]').should('be.visible'); // Ждем 3 минуты (в реальном тесте это будет быстрее из-за моков) cy.wait(180000); // Ждем появления кнопки копирования cy.get('[data-testid="copy-button"]').should('be.visible'); // Копируем ссылку cy.get('[data-testid="copy-button"]').click(); // Проверяем появление уведомления об успешном копировании cy.contains('Ссылка успешно скопирована').should('be.visible'); // Получаем ссылку из буфера обмена cy.window().then((win) => { win.navigator.clipboard.readText().then((text) => { // Открываем ссылку в новой вкладке cy.window().then((win) => { const newWindow = win.open(text, '_blank'); // Проверяем, что новая вкладка открылась expect(newWindow).to.not.be.null; }); }); }); }); });