Initial commit
This commit is contained in:
commit
663419bacf
|
@ -0,0 +1 @@
|
|||
node_modules
|
|
@ -0,0 +1,12 @@
|
|||
# Utilitaires de test pour les applications Publik
|
||||
|
||||
Bibliothèque permettant d'exécuter des spécifications fonctionnelles sous forme de test.
|
||||
|
||||
Pour utiliser :
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm test
|
||||
```
|
||||
|
||||
Cela devrait lancer un navigateur et exécuter les étapes de test implémentées dans `features/*.feature`.
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = {
|
||||
default: `--publish-quiet --format-options '{"snippetInterface": "synchronous"}'`
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
Fonctionnalité: Authentik
|
||||
Contexte:
|
||||
Sachant que je suis sur la page d'accueil de Combo
|
||||
|
||||
Scénario: Connexion valide
|
||||
Sachant que je visite la page de connexion
|
||||
Lorsque je saisis "admin@localhost" dans le champ "username"
|
||||
Et que je saisis "admin" dans le champ "password"
|
||||
Et que je valide le formulaire
|
||||
Alors Je dois être connectée en tant que "admin admin"
|
||||
|
||||
Scénario: Déconnexion
|
||||
Lorsque je clique sur "Déconnexion"
|
||||
Alors Je dois ne dois pas être connecté
|
||||
|
||||
Scénario: Authentification échouée
|
||||
Sachant que je visite la page de connexion
|
||||
Lorsque je saisis "admin@localhost" dans le champ "username"
|
||||
Et que je saisis "invalide" dans le champ "password"
|
||||
Et que je valide le formulaire
|
||||
Alors Je dois ne dois pas être connecté
|
||||
Et la page doit afficher "Courriel ou mot de passe incorrect"
|
|
@ -0,0 +1,58 @@
|
|||
const assert = require('assert')
|
||||
|
||||
const { Given, When, Then, After, AfterAll, setDefaultTimeout} = require('@cucumber/cucumber');
|
||||
const { Builder, By, Capabilities, Key } = require('selenium-webdriver');
|
||||
const { expect } = require('chai');
|
||||
setDefaultTimeout(5 * 1000);
|
||||
require("chromedriver");
|
||||
|
||||
// driver setup
|
||||
const capabilities = Capabilities.chrome();
|
||||
capabilities.set('chromeOptions', { "w3c": false });
|
||||
const driver = new Builder().withCapabilities(capabilities).build();
|
||||
driver.manage().window().maximize()
|
||||
|
||||
Given("je suis sur la page d'accueil de Combo", async function () {
|
||||
await driver.get('https://combo.dev.publik.love');
|
||||
});
|
||||
|
||||
Given('je visite la page de connexion', async function () {
|
||||
let element = await driver.findElement(By.className('login-link'));
|
||||
await element.click();
|
||||
});
|
||||
|
||||
|
||||
When('je saisis {string} dans le champ {string}', async function (text, field) {
|
||||
let element = await driver.findElement(By.name(field));
|
||||
await element.sendKeys(text)
|
||||
});
|
||||
|
||||
When('je valide le formulaire', async function () {
|
||||
let currentField = await driver.switchTo().activeElement();
|
||||
await currentField.sendKeys(Key.RETURN)
|
||||
});
|
||||
|
||||
|
||||
Then('Je dois être connectée en tant que {string}', async function (expectedUsername) {
|
||||
let usernameLink = await driver.findElement(By.className('connected-user'));
|
||||
let username = await usernameLink.getText()
|
||||
expect(username).to.equal(expectedUsername)
|
||||
});
|
||||
|
||||
When('je clique sur {string}', async function (text) {
|
||||
let element = await driver.findElement(By.xpath(`//*[contains(text(), "${text}")]`));
|
||||
await element.sendKeys(Key.RETURN);
|
||||
});
|
||||
|
||||
|
||||
Then('Je dois ne dois pas être connecté', async function () {
|
||||
await driver.findElement(By.className('login-link'));
|
||||
});
|
||||
|
||||
Then('la page doit afficher {string}', async function (text) {
|
||||
let element = await driver.findElement(By.xpath(`//*[contains(text(), "${text}")]`));
|
||||
});
|
||||
|
||||
AfterAll(async function(){
|
||||
await driver.quit();
|
||||
});
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "app-testing",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "cucumber-js --language fr"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@cucumber/cucumber": "^8.8.0",
|
||||
"chai": "^4.3.7",
|
||||
"chromedriver": "^107.0.3",
|
||||
"selenium-webdriver": "^4.6.1"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue