76 lines
2.7 KiB
TypeScript
76 lines
2.7 KiB
TypeScript
/// <reference types="cypress" />
|
||
|
||
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');
|
||
});
|
||
});
|
||
});
|