Moved driver setup in dedicated module

This commit is contained in:
Agate 2022-11-17 14:34:13 +01:00
parent 663419bacf
commit cef86ef937
3 changed files with 36 additions and 25 deletions

View File

@ -1,22 +1,21 @@
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
Sachant que je suis sur la page "Portail Usager - Accueil"
Et que je clique sur "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"
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é
Alors je ne dois pas être connectée
Scénario: Authentification échouée
Sachant que je visite la page de connexion
Sachant que je suis sur la page "Portail Usager - Accueil"
Et que je clique sur "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é
Alors je ne dois pas être connectée
Et la page doit afficher "Courriel ou mot de passe incorrect"

View File

@ -1,27 +1,29 @@
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");
const { By, Key } = require('selenium-webdriver');
// driver setup
const capabilities = Capabilities.chrome();
capabilities.set('chromeOptions', { "w3c": false });
const driver = new Builder().withCapabilities(capabilities).build();
const { getDriver } = require('../../src/driver');
const { expect } = require('chai');
// setup
setDefaultTimeout(5 * 1000);
const driver = getDriver()
driver.manage().window().maximize()
Given("je suis sur la page d'accueil de Combo", async function () {
await driver.get('https://combo.dev.publik.love');
});
let PAGES = {
'Portail Usager - Accueil': process.env.PUBLIK_PORTAIL_USAGER || 'https://combo.dev.publik.love'
}
console.log('Available pages:', PAGES)
console.log('Launching tests...')
function getUrlFromPage(pageName) {
return PAGES[pageName]
}
Given('je visite la page de connexion', async function () {
let element = await driver.findElement(By.className('login-link'));
await element.click();
Given("je suis sur la page {string}", async function (pageName) {
await driver.get(getUrlFromPage(pageName));
});
When('je saisis {string} dans le champ {string}', async function (text, field) {
let element = await driver.findElement(By.name(field));
await element.sendKeys(text)
@ -33,7 +35,7 @@ When('je valide le formulaire', async function () {
});
Then('Je dois être connectée en tant que {string}', async function (expectedUsername) {
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)
@ -45,7 +47,7 @@ When('je clique sur {string}', async function (text) {
});
Then('Je dois ne dois pas être connecté', async function () {
Then('je ne dois pas être connecté(e)', async function () {
await driver.findElement(By.className('login-link'));
});

10
src/driver.js Normal file
View File

@ -0,0 +1,10 @@
const { Builder, Capabilities } = require('selenium-webdriver');
require("chromedriver");
module.exports.getDriver = function getDriver() {
// driver setup
const capabilities = Capabilities.chrome();
capabilities.set('chromeOptions', { "w3c": false });
const driver = new Builder().withCapabilities(capabilities).build();
return driver
}