86 lines
3.6 KiB
TypeScript
86 lines
3.6 KiB
TypeScript
import { userExample } from '../../../fixtures/users/user'
|
|
import {
|
|
postUsersSignupHandler,
|
|
postUsersSignupAlreadyUsedHandler
|
|
} from '../../../fixtures/users/signup/post'
|
|
|
|
describe('Pages > /authentication/signup', () => {
|
|
beforeEach(() => {
|
|
cy.task('stopMockServer')
|
|
cy.visit('/authentication/signup')
|
|
})
|
|
|
|
it('should succeeds and sign up the user', () => {
|
|
cy.task('startMockServer', [postUsersSignupHandler])
|
|
cy.get('#error-name').should('not.exist')
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('#error-password').should('not.exist')
|
|
cy.get('[data-cy=input-name]').type(userExample.name)
|
|
cy.get('[data-cy=input-email]').type(userExample.email)
|
|
cy.get('[data-cy=input-password]').type('randompassword')
|
|
cy.get('[data-cy=submit]').click()
|
|
cy.get('#message').should(
|
|
'have.text',
|
|
"Success: You're almost there, please check your emails to confirm registration."
|
|
)
|
|
})
|
|
|
|
it('should fails with name or email already used', () => {
|
|
cy.task('startMockServer', [postUsersSignupAlreadyUsedHandler])
|
|
cy.get('#error-name').should('not.exist')
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('#error-password').should('not.exist')
|
|
cy.get('[data-cy=input-name]').type(userExample.name)
|
|
cy.get('[data-cy=input-email]').type(userExample.email)
|
|
cy.get('[data-cy=input-password]').type('randompassword')
|
|
cy.get('[data-cy=submit]').click()
|
|
cy.get('#message').should('have.text', 'Error: Name or Email already used.')
|
|
cy.get('#error-name').should('not.exist')
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('#error-password').should('not.exist')
|
|
})
|
|
|
|
it('should fails with unreachable api server', () => {
|
|
cy.get('#error-name').should('not.exist')
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('#error-password').should('not.exist')
|
|
cy.get('[data-cy=input-name]').type(userExample.name)
|
|
cy.get('[data-cy=input-email]').type(userExample.email)
|
|
cy.get('[data-cy=input-password]').type('randompassword')
|
|
cy.get('[data-cy=submit]').click()
|
|
cy.get('#message').should('have.text', 'Error: Internal Server Error.')
|
|
cy.get('#error-name').should('not.exist')
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('#error-password').should('not.exist')
|
|
})
|
|
|
|
it('should fails with all inputs as required with error messages and update error messages when updating language (translation)', () => {
|
|
const requiredErrorMessage = {
|
|
en: 'Error: Oops, this field is required 🙈.',
|
|
fr: 'Erreur: Oups, ce champ est obligatoire 🙈.'
|
|
}
|
|
cy.get('#error-name').should('not.exist')
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('#error-password').should('not.exist')
|
|
cy.get('[data-cy=submit]').click()
|
|
cy.get('#error-name').should('have.text', requiredErrorMessage.en)
|
|
cy.get('#error-email').should('have.text', requiredErrorMessage.en)
|
|
cy.get('#error-password').should('have.text', requiredErrorMessage.en)
|
|
cy.get('[data-cy=language-click]').click()
|
|
cy.get('[data-cy=languages-list] > li:first-child').contains('FR').click()
|
|
cy.get('#error-name').should('have.text', requiredErrorMessage.fr)
|
|
cy.get('#error-email').should('have.text', requiredErrorMessage.fr)
|
|
cy.get('#error-password').should('have.text', requiredErrorMessage.fr)
|
|
})
|
|
|
|
it('should fails with wrong email format', () => {
|
|
cy.get('#error-email').should('not.exist')
|
|
cy.get('[data-cy=input-email]').type('test')
|
|
cy.get('[data-cy=submit]').click()
|
|
cy.get('#error-email').should(
|
|
'have.text',
|
|
'Error: Mmm… It seems that this email is not valid 🤔.'
|
|
)
|
|
})
|
|
})
|