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,
"conventionalCommits.scopes": [
"#1",
"#2",
"#3",
"#4",
"#5",
"#6"
]
"git.ignoreLimitWarning": true
}

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

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,69 +1,39 @@
/// <reference types="cypress" />
describe('Should allow valid user and block the rest', () => {
beforeEach(function() {
// Changed theses should as required conditions to perform other tests
cy.visit('/')
it('Should work as expected', () => {
cy.visit('http://localhost:3000')
// 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() {
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('#email-input').clear()
cy.get('#password-input').clear()
cy.get('#submit').click()
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')
});
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.get('input').first().clear().type('adrian-trusk')
cy.get('button').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.get('input').first().clear().type('adrian.pothuaud@trusk.com')
cy.get('button').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.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')
});
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.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')
});
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')
@ -71,7 +41,5 @@ describe('Should allow valid user and block the rest', () => {
cy.get('p').should('be.visible')
cy.get('label').should('be.visible')
cy.get('input').should('be.visible')
cy.get('#submit').should('be.visible')
});
});
cy.get('button').should('be.visible')
})

View File

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