frontPanel/cypress/e2e/personalization.cy.ts

76 lines
2.7 KiB
TypeScript
Raw Normal View History

2025-06-16 05:24:10 +00:00
/// <reference types="cypress" />
describe('Personalization Flow', () => {
beforeEach(() => {
// Логинимся перед каждым тестом
cy.login();
2025-06-16 05:24:10 +00:00
});
it('should complete personalization flow and open link in new tab', () => {
// Ищем нужный квиз и нажимаем редактировать
cy.contains('Сочетание перестановки и размещения')
.parent()
.parent()
.contains('Редактировать')
.click();
2025-06-16 05:24:10 +00:00
// Переходим на вкладку персонализации
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();
2025-06-16 05:24:10 +00:00
// Генерируем случайный возраст от 1 до 99
const randomAge = Math.floor(Math.random() * 99) + 1;
// Вводим возраст
cy.get('input[placeholder="Введите возраст"]')
2025-06-16 05:24:10 +00:00
.type(randomAge.toString())
.should('have.value', randomAge.toString());
// Нажимаем кнопку Ок
cy.contains('Ок').click();
2025-06-16 05:24:10 +00:00
// Ждем появления ссылки и получаем её текст
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');
2025-06-16 05:24:10 +00:00
});
});
});