Compare commits

..

4 Commits

Author SHA1 Message Date
9fc2292f3e Mise à jour de 'README.md' 2021-09-06 11:07:51 +00:00
ef16681e07 Mise à jour de 'README.md' 2021-09-06 11:06:56 +00:00
71b3d01366 Update 'README.md' 2021-09-06 09:18:37 +00:00
Simon Priet
0e7d385706 docs: updated readme.md with more text than ever 2021-09-06 11:18:02 +02:00
7 changed files with 55 additions and 138 deletions

19
.vscode/launch.json vendored
View File

@ -1,19 +0,0 @@
{
// 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
View File

@ -1,11 +1,3 @@
{ {
"git.ignoreLimitWarning": true, "git.ignoreLimitWarning": true
"conventionalCommits.scopes": [
"#1",
"#2",
"#3",
"#4",
"#5",
"#6"
]
} }

View File

@ -1,6 +1,13 @@
# Tests @ Trusk # Tests @ Trusk (Partie 3)
> Identifier le mauvais code de Cypress et proposer des améliorations
Ce projet d'automatisation avait besoin d'un certain nettoyage. Je me suis permis de faire des retours sous forme de tickets accessibles dans l'onglet [Tickets / Issues](https://git.blanchelune.i234.me/Trusk/Partie-3/issues). Mais surtout, je me suis permis d'implémenter certaines de ces suggestions au sein d'une nouvelle branche appelée `refacto`. Avant que vous n'alliez inspecter son code, sachez qu'il existe la Pull Request [#5 Fix various issues in the current Milestone](https://git.blanchelune.i234.me/Trusk/Partie-3/pulls/5) qui reprends les commits de ces modifications. Chaque changements que j'ai implementé sur cette pull request est associé à un ticket. Il est donc tres facile de voir mes modifications du code pour chaque suggestions que j'ai formulé (le cas échéant, je n'ai pas tout implémenté), et inversement. Une fois approuvée, la Demande d'ajout pourrait-être fusionnée sur la branche principale.
Comme quoi, un logiciel d'automatisation est une forme de projet de développement applicatif à lui seul.
Vous pouvez voir les autres parties du test d'entretien en cliquant sur le [Groupe Trusk](https://git.blanchelune.i234.me/Trusk).
Ceci est un projet exemple pour l'utilisation de [Cypress](https://www.cypress.io/)
## Installer les dépendences ## Installer les dépendences

View File

@ -1,6 +1 @@
{ {}
"baseUrl": "http://localhost:3000",
"env" : {
"logoutUrl": "/ok.html"
}
}

View File

@ -1,25 +0,0 @@
[
{
"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"
}
}
]

View File

@ -1,77 +1,45 @@
/// <reference types="cypress" /> /// <reference types="cypress" />
describe('Should allow valid user and block the rest', () => { it('Should work as expected', () => {
cy.visit('http://localhost:3000')
beforeEach(function() { // title
// Changed theses should as required conditions to perform other tests cy.title().should('eq', 'QA @ Trusk')
cy.visit('/') // elements
// title cy.get('h1').should('be.visible')
cy.title().should('eq', 'QA @ Trusk') cy.get('p').should('be.visible')
// elements cy.get('label').should('be.visible')
cy.get('#hello').should('be.visible') cy.get('input').should('be.visible')
cy.get('#guess').should('be.visible') cy.get('button').should('be.visible')
cy.get('#email-label').should('be.visible') // submit empty
cy.get('#email-input').should('be.visible') cy.get('input').first().clear()
cy.get('#password-label').should('be.visible') cy.get('input').last().clear()
cy.get('#password-input').should('be.visible') cy.get('button').click()
cy.get('#submit').should('be.visible') 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')
it('Prevent submiting empty credentials', function() { cy.get('button').click()
// submit empty cy.contains('Renseignes une adresse e-mail valide!').should('be.visible')
cy.get('#email-input').clear() // submit wrong email
cy.get('#password-input').clear() cy.get('input').first().clear().type('adrian.pothuaud@trusk.com')
cy.get('#submit').click() cy.get('button').click()
cy.contains('Renseignes une adresse e-mail!').should('be.visible') cy.contains('Renseignes la bonne adresse e-mail!').should('be.visible')
cy.contains('Renseignes un mot de passe!').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()
it('Prevent submiting malformed email', function() { cy.contains('Renseignes le bon mot de passe').should('be.visible')
// submit invalid email // submit valid credentials
cy.get('#email-input').clear().type('adrian-trusk') cy.get('input').first().clear().type('adrian@trusk.com')
cy.get('#password-input').clear() cy.get('input').last().clear().type('adrian@trusk.com')
cy.get('#submit').click() cy.get('button').click()
cy.contains('Renseignes une adresse e-mail valide!').should('be.visible') cy.contains('Salut testeur !').should('be.visible')
}); // get back
cy.contains('Retour').click()
it('Prevent submiting an unexisting user', function() { cy.title().should('eq', 'QA @ Trusk')
// submit wrong email cy.get('h1').should('be.visible')
cy.get('#email-input').clear().type('adrian.pothuaud@trusk.com') cy.get('p').should('be.visible')
cy.get('#password-input').clear().type('badpassword') cy.get('label').should('be.visible')
cy.get('#submit').click() cy.get('input').should('be.visible')
cy.contains('Renseignes la bonne adresse e-mail!').should('be.visible') cy.get('button').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')
});
});

View File

@ -3,8 +3,7 @@
"version": "0.0.1", "version": "0.0.1",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"start": "nodemon index.js", "start": "nodemon index.js"
"test": "cypress open"
}, },
"devDependencies": { "devDependencies": {
"cypress": "^8.3.0", "cypress": "^8.3.0",