// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************

// -- This is a custom command for login --
Cypress.Commands.add('login', (phone, password) => {
  cy.visit('/');
  cy.wait(1000);
  cy.get('.btn-login').click();
  cy.get('.auth-modal').should('be.visible');
  cy.get('input[placeholder*="手机号"]').type(phone);
  cy.get('input[placeholder*="密码"]').first().type(password);
  cy.get('.auth-modal .auth-submit-btn').click();
  cy.wait(3000);
});

Cypress.Commands.add('register', (phone, password, nickname = '测试用户') => {
  cy.visit('/');
  cy.wait(1000);
  cy.get('.btn-register').click();
  cy.get('.auth-modal').should('be.visible');
  cy.get('input[placeholder*="手机号"]').type(phone);
  if (nickname) {
    cy.get('input[placeholder*="昵称"]').type(nickname);
  }
  cy.get('input[placeholder*="设置密码"]').type(password);
  cy.get('input[placeholder*="确认密码"]').type(password);
  cy.get('.auth-modal .auth-submit-btn').click();
  cy.wait(3000);
});

// -- This is a parent command --
// Cypress.Commands.add('login', (email, password) => { ... })
//
// -- This is a child command --
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
//
// -- This is a dual command --
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
