Ссылка на определение новой команды Cypress

#javascript #reference #command #cypress #definition

#javascript #ссылка #команда #cypress #определение

Вопрос:

я создал пользовательские команды в Cypress, а затем использовал их в своей test.spec.js но когда я пытаюсь перейти к определению моей команды (ctrl щелчок правой кнопкой мыши), он показывает (любой) и никакой ссылки. есть ли какое-либо решение для этого? потому что, если кто-то другой попытается прочитать мой тестовый скрипт, будет нелегко узнать, где находится определение запятой…

test.spec.js

     describe('test', () => {
      before('Login before', () => {
        cy.visit('/');
        // my custom command cy.login()
         cy.login();
      });
    });
  

commands.js

     // definition of the command 
    Cypress.Commands.add('login', () => {
      // body of the command 
    });
  

Ответ №1:

Да, есть способ.

Вы добавляете один TS-файл в support/ .

поддержка/commands.d.ts:

 declare namespace Cypress {
  interface Chainable<Subject> {    

    /**
     * Logs in a user
     *
     * @param {string} name User to log in
     * @example
     *    cy.login('admin');
     *
     */
    login(name: string): Chainable<any>
  }
}
  

Команда будет добавлена в объект cy, поэтому при вводе она также предложит новую пользовательскую команду:

введите описание изображения здесь

Вы можете увидеть информацию о команде при наведении на нее курсора мыши:

введите описание изображения здесь

Кроме того, вы перейдете к commands.d.ts файлу, когда вы нажмете на него с нажатой клавишей Ctrl.

Комментарии:

1. Да, спасибо, я понимаю это, но я хочу связать это с определением команды. // определение команды Cypress. Commands.add(‘login’, () => { // тело команды });