# Tests @ Trusk (Partie 3)

Ceci est un projet exemple pour l'utilisation de [Cypress](https://www.cypress.io/)

## Revue de Simon

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é, 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).


## Installer les dépendences

- Avoir [Node.js](https://nodejs.org/en/) d'installé
- Être sur une version de Node.js qui permet l'utilisation de [yarn](https://yarnpkg.com/)
- Ouvrir un terminal de commandes
- Se déplacer dans le répertoire
- Lancer `yarn` pour installer les dépendances du projet

## Architecture

### Applicatif

Une application très simple écrite en Javascript avec le framework [Express](https://expressjs.com/fr/)

- [index.js](index.js) le fichier de lancement du serveur [Express](https://expressjs.com/fr/)
- [public](public) fichiers servis de manière statique
- [index.html](public/index.html) le point d'entrée de l'appli

L'application est un formulaire semblable a une connexion. Pour se "connecter" il faut saisir deux foix adrian@trusk.com sinon des messages d'erreur apparaissent.

### Tests

Les tests sont écris en [Cypress](https://www.cypress.io/) et se trouvent dans [ce fichier](cypress/integration/trusk-test/test.spec.js)

## Lancer les tests

### Avec UI Cypress

- Ouvrir un terminal de commandes
- Se déplacer dans le répertoire
- Lancer le server avec `yarn start`
- Dans un autre terminal
- Lancer `yarn cypress open` pour lancer l'interface graphique de [Cypress](https://www.cypress.io/)

### En ligne de commandes

- Ouvrir un terminal de commandes
- Se déplacer dans le répertoire
- Lancer le server avec `yarn start`
- Dans un autre terminal
- Lancer `yarn cypress run` pour lancer les tests sans l'interface graphique de [Cypress](https://www.cypress.io/)