From 9670bd01f86baad3cfaa0a3f76ebc85ecd6cf7b5 Mon Sep 17 00:00:00 2001 From: nabim777 Date: Mon, 7 Oct 2024 16:33:44 +0545 Subject: [PATCH] add the config.js file Signed-off-by: nabim777 --- client/cucumber.conf.js | 7 ++++--- client/tests/acceptance/config.js | 12 ++++++++++++ client/tests/acceptance/pageObjects/LoginPage.js | 7 +++++-- client/tests/acceptance/testHelpers/apiHelpers.js | 11 ++++++----- 4 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 client/tests/acceptance/config.js diff --git a/client/cucumber.conf.js b/client/cucumber.conf.js index 62a84d91..ee44f297 100644 --- a/client/cucumber.conf.js +++ b/client/cucumber.conf.js @@ -3,15 +3,16 @@ const { Before, BeforeAll, AfterAll, After, setDefaultTimeout } = require('@cucumber/cucumber'); const { chromium } = require('playwright'); const { deleteProject } = require('./tests/acceptance/testHelpers/apiHelpers'); +const config = require('./tests/acceptance/config'); -setDefaultTimeout(60000); +setDefaultTimeout(config.timeout); // launch the browser BeforeAll(async function () { global.browser = await chromium.launch({ // makes true for CI - headless: true, - slowMo: 1000, + headless: config.headless, + slowMo: config.slowMo, }); }); diff --git a/client/tests/acceptance/config.js b/client/tests/acceptance/config.js new file mode 100644 index 00000000..5e5193b5 --- /dev/null +++ b/client/tests/acceptance/config.js @@ -0,0 +1,12 @@ +module.exports = { + // environment + adminUser: { + email: 'demo@demo.demo', + password: 'demo', + }, + baseUrl: process.env.BASE_URL ?? 'http://localhost:1337/', + // playwright + slowMo: parseInt(process.env.SLOW_MO, 10) || 1000, + timeout: parseInt(process.env.TIMEOUT, 10) || 6000, + headless: process.env.HEADLESS !== 'true', +}; diff --git a/client/tests/acceptance/pageObjects/LoginPage.js b/client/tests/acceptance/pageObjects/LoginPage.js index 6b40d48d..e7e38d27 100644 --- a/client/tests/acceptance/pageObjects/LoginPage.js +++ b/client/tests/acceptance/pageObjects/LoginPage.js @@ -1,9 +1,12 @@ +const config = require(`../config`); + class LoginPage { constructor() { // url - this.homeUrl = 'http://localhost:1337'; - this.loginUrl = `${this.homeUrl}/login`; + this.homeUrl = config.baseUrl; + this.loginUrl = `${this.homeUrl}login`; + // selectors this.loginButtonSelector = `//i[@class="right arrow icon"]`; this.usernameSelector = `//input[@name='emailOrUsername']`; this.passwordSelector = `//input[@name='password']`; diff --git a/client/tests/acceptance/testHelpers/apiHelpers.js b/client/tests/acceptance/testHelpers/apiHelpers.js index 96af40b9..3d50850d 100644 --- a/client/tests/acceptance/testHelpers/apiHelpers.js +++ b/client/tests/acceptance/testHelpers/apiHelpers.js @@ -1,12 +1,13 @@ const axios = require('axios'); +const config = require('../config'); async function getXauthToken() { try { const res = await axios.post( - 'http://localhost:1337/api/access-tokens', + `${config.baseUrl}api/access-tokens`, { - emailOrUsername: 'demo', - password: 'demo', + emailOrUsername: config.adminUser.email, + password: config.adminUser.password, }, { headers: { @@ -22,7 +23,7 @@ async function getXauthToken() { async function getProjectIDs() { try { - const res = await axios.get('http://localhost:1337/api/projects', { + const res = await axios.get(`${config.baseUrl}api/projects`, { headers: { Authorization: `Bearer ${await getXauthToken()}`, }, @@ -38,7 +39,7 @@ async function deleteProject() { const projectIDs = await getProjectIDs(); await Promise.all( projectIDs.map(async (project) => { - await axios.delete(`http://localhost:1337/api/projects/${project}`, { + await axios.delete(`${config.baseUrl}api/projects/${project}`, { headers: { Authorization: `Bearer ${await getXauthToken()}`, },