/// <reference types="cypress" />

declare global {
  namespace Cypress {
    interface Chainable {
      login(): Chainable<void>
    }
  }
}

Cypress.Commands.add('login', () => {
  // Пробуем перейти на страницу входа
  cy.visit('/signin', {
    timeout: 10000, // Увеличиваем таймаут до 10 секунд
    failOnStatusCode: false // Не падаем при ошибках статуса
  });

  // Проверяем, что мы на странице входа
  cy.url().should('include', '/signin');

  // Вводим данные для входа
  cy.get('#email', { timeout: 10000 }).should('be.visible').type('test@test.ru');
  cy.get('#password', { timeout: 10000 }).should('be.visible').type('testtest');
  cy.get('button[type="submit"]', { timeout: 10000 }).should('be.visible').click();

  // Ждем успешного входа
  cy.url().should('not.include', '/signin', { timeout: 10000 });
}); 