Fix various issues in the current Milestone #5
19
.vscode/launch.json
vendored
Normal file
19
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
// Utilisez IntelliSense pour en savoir plus sur les attributs possibles.
|
||||
// Pointez pour afficher la description des attributs existants.
|
||||
// Pour plus d'informations, visitez : https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Test Cypress via NPM",
|
||||
"cwd": "${workspaceFolder}",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "npm",
|
||||
"runtimeArgs": [
|
||||
"run-script",
|
||||
"test"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
10
.vscode/settings.json
vendored
10
.vscode/settings.json
vendored
@ -1,3 +1,11 @@
|
||||
{
|
||||
"git.ignoreLimitWarning": true
|
||||
"git.ignoreLimitWarning": true,
|
||||
"conventionalCommits.scopes": [
|
||||
"#1",
|
||||
"#2",
|
||||
"#3",
|
||||
"#4",
|
||||
"#5",
|
||||
"#6"
|
||||
]
|
||||
}
|
@ -1 +1,6 @@
|
||||
{}
|
||||
{
|
||||
"baseUrl": "http://localhost:3000",
|
||||
"env" : {
|
||||
"logoutUrl": "/ok.html"
|
||||
}
|
||||
}
|
||||
|
25
cypress/fixtures/userSet.json
Normal file
25
cypress/fixtures/userSet.json
Normal file
@ -0,0 +1,25 @@
|
||||
[
|
||||
{
|
||||
"valid-admin": {
|
||||
"email": "adrian@trusk.com",
|
||||
"password": "adrian@trusk.com"
|
||||
}
|
||||
},
|
||||
{
|
||||
"invalid-admin": {
|
||||
"email": "adrian@trusk.com",
|
||||
"password": "adrian"
|
||||
}
|
||||
},
|
||||
{
|
||||
"unexisting-user": {
|
||||
"email": "adrian.pothuaud@trusk.com",
|
||||
"password": "badpassword"
|
||||
}
|
||||
},
|
||||
{
|
||||
"malformed-email": {
|
||||
"email": "adrian-trusk"
|
||||
}
|
||||
}
|
||||
]
|
@ -1,45 +1,77 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
it('Should work as expected', () => {
|
||||
cy.visit('http://localhost:3000')
|
||||
// title
|
||||
cy.title().should('eq', 'QA @ Trusk')
|
||||
// elements
|
||||
cy.get('h1').should('be.visible')
|
||||
cy.get('p').should('be.visible')
|
||||
cy.get('label').should('be.visible')
|
||||
cy.get('input').should('be.visible')
|
||||
cy.get('button').should('be.visible')
|
||||
// submit empty
|
||||
cy.get('input').first().clear()
|
||||
cy.get('input').last().clear()
|
||||
cy.get('button').click()
|
||||
cy.contains('Renseignes une adresse e-mail!').should('be.visible')
|
||||
cy.contains('Renseignes un mot de passe!').should('be.visible')
|
||||
// submit invalid email
|
||||
cy.get('input').first().clear().type('adrian-trusk')
|
||||
cy.get('button').click()
|
||||
cy.contains('Renseignes une adresse e-mail valide!').should('be.visible')
|
||||
// submit wrong email
|
||||
cy.get('input').first().clear().type('adrian.pothuaud@trusk.com')
|
||||
cy.get('button').click()
|
||||
cy.contains('Renseignes la bonne adresse e-mail!').should('be.visible')
|
||||
// submit bad password
|
||||
cy.get('input').first().clear().type('adrian@trusk.com')
|
||||
cy.get('input').last().clear().type('adrian')
|
||||
cy.get('button').click()
|
||||
cy.contains('Renseignes le bon mot de passe').should('be.visible')
|
||||
// submit valid credentials
|
||||
cy.get('input').first().clear().type('adrian@trusk.com')
|
||||
cy.get('input').last().clear().type('adrian@trusk.com')
|
||||
cy.get('button').click()
|
||||
cy.contains('Salut testeur !').should('be.visible')
|
||||
// get back
|
||||
cy.contains('Retour').click()
|
||||
cy.title().should('eq', 'QA @ Trusk')
|
||||
cy.get('h1').should('be.visible')
|
||||
cy.get('p').should('be.visible')
|
||||
cy.get('label').should('be.visible')
|
||||
cy.get('input').should('be.visible')
|
||||
cy.get('button').should('be.visible')
|
||||
})
|
||||
describe('Should allow valid user and block the rest', () => {
|
||||
|
||||
beforeEach(function() {
|
||||
// Changed theses should as required conditions to perform other tests
|
||||
cy.visit('/')
|
||||
// title
|
||||
cy.title().should('eq', 'QA @ Trusk')
|
||||
// elements
|
||||
cy.get('#hello').should('be.visible')
|
||||
cy.get('#guess').should('be.visible')
|
||||
cy.get('#email-label').should('be.visible')
|
||||
cy.get('#email-input').should('be.visible')
|
||||
cy.get('#password-label').should('be.visible')
|
||||
cy.get('#password-input').should('be.visible')
|
||||
cy.get('#submit').should('be.visible')
|
||||
|
||||
});
|
||||
|
||||
it('Prevent submiting empty credentials', function() {
|
||||
// submit empty
|
||||
cy.get('#email-input').clear()
|
||||
cy.get('#password-input').clear()
|
||||
cy.get('#submit').click()
|
||||
cy.contains('Renseignes une adresse e-mail!').should('be.visible')
|
||||
cy.contains('Renseignes un mot de passe!').should('be.visible')
|
||||
});
|
||||
|
||||
|
||||
it('Prevent submiting malformed email', function() {
|
||||
// submit invalid email
|
||||
cy.get('#email-input').clear().type('adrian-trusk')
|
||||
cy.get('#password-input').clear()
|
||||
cy.get('#submit').click()
|
||||
cy.contains('Renseignes une adresse e-mail valide!').should('be.visible')
|
||||
});
|
||||
|
||||
it('Prevent submiting an unexisting user', function() {
|
||||
// submit wrong email
|
||||
cy.get('#email-input').clear().type('adrian.pothuaud@trusk.com')
|
||||
cy.get('#password-input').clear().type('badpassword')
|
||||
cy.get('#submit').click()
|
||||
cy.contains('Renseignes la bonne adresse e-mail!').should('be.visible')
|
||||
cy.contains('Renseignes le bon mot de passe').should('be.visible')
|
||||
});
|
||||
|
||||
it('Prevent submiting invalid password of an existing user', function() {
|
||||
// submit bad password
|
||||
cy.get('#email-input').clear().type('adrian@trusk.com')
|
||||
cy.get('#password-input').clear().type('adrian')
|
||||
cy.get('#submit').click()
|
||||
cy.contains('Renseignes le bon mot de passe').should('be.visible')
|
||||
});
|
||||
|
||||
it('Allow connect a user in the system with right credentials', function() {
|
||||
// submit valid credentials
|
||||
cy.get('#email-input').clear().type('adrian@trusk.com')
|
||||
cy.get('#password-input').clear().type('adrian@trusk.com')
|
||||
cy.get('#submit').click()
|
||||
cy.contains('Salut testeur !').should('be.visible')
|
||||
|
||||
});
|
||||
|
||||
it.skip('Allow to disconnect a connected user', function() {
|
||||
// cy.visit("ok.html")
|
||||
// get back
|
||||
cy.contains('Retour').click()
|
||||
cy.title().should('eq', 'QA @ Trusk')
|
||||
cy.get('h1').should('be.visible')
|
||||
cy.get('p').should('be.visible')
|
||||
cy.get('label').should('be.visible')
|
||||
cy.get('input').should('be.visible')
|
||||
cy.get('#submit').should('be.visible')
|
||||
});
|
||||
|
||||
});
|
@ -3,7 +3,8 @@
|
||||
"version": "0.0.1",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "nodemon index.js"
|
||||
"start": "nodemon index.js",
|
||||
"test": "cypress open"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cypress": "^8.3.0",
|
||||
|
Loading…
x
Reference in New Issue
Block a user