Aqui está o meu teste, adicionei o enter na validação ao invés do click no button e agrupei algumas validações a fim de reduzir o código
describe('Registrar no site alurapic e fazer login para validar', () => {
beforeEach('Acessar página do alurapic', () => {
cy.visit('https://alura-fotos.herokuapp.com/#/home')
})
Cypress.Commands.add('paginaDeRegistro', () => {
cy.contains('a', 'Register now').click()
cy.contains('button.btn', 'Register').click()
})
it('verificar mensagens de validação', () => {
cy.paginaDeRegistro()
cy.contains('ap-vmessage', 'Email is required!').should('be.visible')
cy.contains('button.btn', 'Register').click()
cy.contains('ap-vmessage', 'Full name is required!').should('be.visible')
cy.contains('ap-vmessage', 'User name is required!').should('be.visible')
cy.contains('ap-vmessage', 'Password is required!').should('be.visible')
})
it('verificar campos invalidos', () => {
cy.paginaDeRegistro()
cy.get('input[formcontrolname="email"]').type('willian')
cy.contains('ap-vmessage', 'Invalid e-mail').should('be.visible')
cy.get('input[formcontrolname="fullName"]').type('w{enter}')
cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible')
cy.get('input[formcontrolname="userName"]').type('w{enter}')
cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible')
cy.get('input[formcontrolname="password"]').type('1234567{enter}')
cy.contains('ap-vmessage', 'Mininum length is 8').should('be.visible')
})
it('verificar mensagem que o nome de usuário deve estar em minúsculo', () => {
cy.paginaDeRegistro()
cy.get('input[formcontrolname="userName"]').type('WILL{enter}')
cy.contains('ap-vmessage', 'Must be lower case').should('be.visible')
})
})