Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não consigo acessar o comando cy.login() criado

Boa tarde, criei um arquivo gui_commands.js e fiz a referência dele em e2e.js(logo abaixo da referência do arquivo commands.js). Segue anexo demonstrativo: arquivo gui_commands.js

Referência do arquivo gui_commands.js em e2e.js: arquivo e2e.js:

Quando tento acessar esse comando na suite de testes a partir do comando "cy.login()" não chama nem mostra esse método, não exibe nada, como se não existisse o método. Conforme anexo demonstrativo abaixo: arquvo alurapic_cy.js

1 resposta
solução!

Oii Leonardo, como você está?

Peço desculpas pela demora em obter um retorno.

Embora o Intellisense do Visual Studio Code não funcione para o comando login mostrando autocomplete e argumentos esperados, isso não afeta o funcionamento do código. Sendo assim, execute os testes através do comando npm run test e os testes "fazer login de usuário válido" e "fazer login de usuário inválido" terão sucesso.

A título de curiosidade, esse é um comportamento esperado do Cypress, que possui sua inteligência de código baseada em TypeScript. Então, quando trabalhamos com comandos customizados eles devem ser escritos nesta linguagem para que o Visual Studio Code os reconheça. Caso não seja escritos desta forma, o VSCode irá emitir o alerta: A propriedade pode não existir 'login' no tipo 'cy & EventEmitter', mas isso não impede o funcionamento correto do código.

Todavia, para fazer com que o comando login seja reconhecido no Visual Studio Code, vá até a pasta support e crie o arquivo index.d.ts e adicione o código abaixo que contém uma declaração em TypeScript da função de login. Após isso, salve o arquivo index.d.ts:

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

declare namespace Cypress {
    interface Chainable<Subject> {
        login(nome: string, senha: string): Chainable<any>

    }
}

Agora, ao utilizar o comando login o Visual Studio Code conseguirá reconhecê-lo:

Imagem do Visual Studio Code, com o teste "fazer login de usuario invalido", onde ao digitar "cy.login", aparece um autocomplete, dizendo que essa função espera receber "nome: string" e "senha:string"

Caso queira conhecer a linguagem TypeScript e suas possibilidades, deixo como recomendação o curso de Typescript parte 1 da Alura, que irá ensinar do zero esse recurso:

Qualquer dúvida fico à disposição.

Grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!