Criei uma suite de testes para fazer algumas validações nos campos e até vi que no campo password a validação do site alura pic está errada, pois a mensagem informa que a quantidade máxima de caracteres da senha é de até 18, mas com 15 caracteres já exibe a mensagem Maximun length is 18. Imagino queessa validação tenha sido proposital, mas efim, segue minha suite de testes.
describe('login e registros de usuarios do alura pic', () => {
beforeEach(() => {
cy.visit('https://alura-fotos.herokuapp.com/');
})
it('Verifica mensagem de validacao dos campos vazios', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Email is required!').should('be.visible');
cy.contains('button', '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('Verifica mensagem de Email invalido', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="email"]').type('meuemail');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Invalid e-mail').should('be.visible');
})
it('Verifica mensagem de Email invalido quando estoura o tamanho do campo', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="email"]').type('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@dominio.com.br');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Invalid e-mail').should('be.visible');
})
it('Verifcar se o Full Name contem a quantidade minima de caracteres', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="fullName"]').type('a');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible');
})
it('Verifcar se o Full Name ultrapassou a quantidade maxima de caracteres', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="fullName"]').type('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Maximun length is 40').should('be.visible');
})
it('Verifcar se o User Name contem a quantidade minima de caracteres', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="userName"]').type('a');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Mininum length is 2').should('be.visible');
})
it('Verifcar se o User Name ultrapassou a quantidade maxima de caracteres', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="userName"]').type('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Maximun length is 30').should('be.visible');
})
it('Verifcar se o User Name contem letras maiuscuas', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="userName"]').type('Meuusuario');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Must be lower case').should('be.visible');
})
it('Verifcar se Password atende ao tamanho minimo', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="password"]').type('1234567');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Mininum length is 8').should('be.visible');
})
it('Verifcar se Password atende ao tamanho maximo', () => {
cy.contains('a', 'Register now').click();
cy.contains('button', 'Register').click();
cy.get('input[formcontrolname="password"]').type('1234567890123456789');
cy.contains('button', 'Register').click();
cy.contains('ap-vmessage', 'Maximun length is 18').should('be.visible');
})
});