Mais um post da série “pitadas de Cypress”
Dando continuidade a série, aprenda como verificar que após determinada ação, o usuário é direcionado para a URL correta.
Imagine um cenário de teste de logout.
Vamos dizer que após fazer o logout da aplicação, o usuário seja redirecionado para a página de login. Como testar isso?
A resposta é simples.
cy.url()
Vejamos um exemplo.
describe('Logout', () => {
beforeEach(() => {
cy.login() // Irei abordar comandos customizados em outro post. Aguarde!
})
it('logout redireciona para à página de login', () => {
cy.contains('Logout')
.should('be.visible')
.click()
cy.url()
.should('be.equal', 'https://exemplo.com/login')
})
})
Com o retorno da chamada da função .url(), podemos verificar se a mesma é igual a uma URL esperada.
Vejamos outra opção, no caso da propriedade baseUrl estar definida no arquivo cypress.json.
describe('Logout', () => {
beforeEach(() => {
cy.login()
})
it('logout redireciona para à página de login', () => {
cy.contains('Logout')
.should('be.visible')
.click()
cy.url().should(
'be.equal',
`${Cypress.config("baseUrl")}/login`
)
})
})
Tada! 🎉
Com a funcionalidade de template strings do JavaScript, podemos obter o valor da configuração da baseUrl (através de Cypress.config(“baseUrl”)) e interpolar com o valor /login.
Dessa forma, podemos executar o mesmo teste em diferentes ambientes (com diferentes baseUrls) e tudo continuará “numa boa”!
O que você está achando da série?
Aguardo teu feedback.
Este conteúdo foi traduzido para inglês e pode ser encontrado no DEV Community.
Ficou curioso(a) e quer aprender mais sobre automação de testes com Cypress? Conheça os cursos da Escola TAT.
- Cypress, do Zero à Nuvem
- Cypress intermediário
- Cypress avançado
- Boas práticas em automação de testes com Cypress
- Testes end-to-end com Cypress
Bons testes! 🎉
Ótimo série de conteúdos. Obrigada!! Estava procurando por algo assim, bem simples de entender. Parabéns pelo conteúdo!
Fico feliz que gostou!