@zohodesk/testinglibrary 0.1.8-exp.1 → 0.1.8-exp.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.babelrc +3 -0
  2. package/build/core/playwright/builtInFixtures/context.js +12 -1
  3. package/build/core/playwright/builtInFixtures/i18N.js +33 -0
  4. package/build/core/playwright/builtInFixtures/index.js +5 -1
  5. package/build/core/playwright/builtInFixtures/page.js +53 -39
  6. package/build/core/playwright/builtInFixtures/unauthenticatedPage.js +18 -0
  7. package/build/core/playwright/clear-caches.js +19 -8
  8. package/build/core/playwright/codegen.js +4 -4
  9. package/build/core/playwright/constants/browserTypes.js +12 -0
  10. package/build/core/playwright/env-initializer.js +10 -6
  11. package/build/core/playwright/helpers/auth/accountLogin.js +18 -0
  12. package/build/core/playwright/helpers/auth/checkAuthCookies.js +47 -0
  13. package/build/core/playwright/helpers/auth/getUrlOrigin.js +13 -0
  14. package/build/core/playwright/helpers/auth/getUsers.js +72 -0
  15. package/build/core/playwright/helpers/auth/index.js +58 -0
  16. package/build/core/playwright/helpers/auth/loginSteps.js +36 -0
  17. package/build/core/playwright/helpers/configFileNameProvider.js +13 -0
  18. package/build/core/playwright/helpers/getUserFixtures.js +18 -0
  19. package/build/core/playwright/helpers/mergeObjects.js +13 -0
  20. package/build/core/playwright/index.js +51 -1
  21. package/build/core/playwright/readConfigFile.js +22 -12
  22. package/build/core/playwright/report-generator.js +7 -7
  23. package/build/core/playwright/setup/config-creator.js +3 -22
  24. package/build/core/playwright/setup/config-utils.js +17 -4
  25. package/build/core/playwright/test-runner.js +15 -1
  26. package/build/core/playwright/types.js +43 -0
  27. package/build/index.d.ts +19 -2
  28. package/build/index.js +48 -11
  29. package/build/lib/cli.js +0 -3
  30. package/build/lib/post-install.js +15 -10
  31. package/build/setup-folder-structure/helper.js +1 -0
  32. package/build/utils/cliArgsToObject.js +5 -5
  33. package/build/utils/fileUtils.js +3 -0
  34. package/build/utils/rootPath.js +16 -9
  35. package/changelog.md +2 -0
  36. package/npm-shrinkwrap.json +12 -12
  37. package/package.json +3 -3
package/.babelrc CHANGED
@@ -6,6 +6,8 @@
6
6
  "targets": {
7
7
  "node": "14"
8
8
  },
9
+ // We are adding plugin @babel/plugin-transform-destructuring to ensure babel does not transform the destructing
10
+ // as playwright does not allow parameters without destrucring
9
11
  "exclude": ["@babel/plugin-transform-destructuring"]
10
12
  }
11
13
  ]
@@ -13,6 +15,7 @@
13
15
  "plugins": [
14
16
  ["@babel/plugin-transform-runtime"]
15
17
  ],
18
+ // Ignored as these are setup files needed during init script. Files inside that folder are copied not transformed
16
19
  "ignore": [
17
20
  "./src/setup-folder-structure/samples"
18
21
  ]
@@ -4,12 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _readConfigFile = require("../readConfigFile");
8
+ const {
9
+ testSetup
10
+ } = (0, _readConfigFile.generateConfigFromFile)();
11
+ async function performDefaultContextSteps(context) {
12
+ if (testSetup.context) {
13
+ await testSetup.context(context);
14
+ }
15
+ }
7
16
  var _default = exports.default = {
8
17
  context: async ({
9
18
  context
10
19
  }, use) => {
20
+ await context.addInitScript(() =>
11
21
  // eslint-disable-next-line no-undef
12
- await context.addInitScript(() => window.localStorage.setItem('isDnBannerHide', true));
22
+ window.localStorage.setItem('isDnBannerHide', true));
23
+ await performDefaultContextSteps(context);
13
24
  await use(context);
14
25
  }
15
26
  };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ /* eslint-disable no-undef */
8
+ /* eslint-disable no-param-reassign */
9
+
10
+ // Note: We are duplicating below method from @zohodesk/i18n. We are not importing it as react package not yet availble in test environment.
11
+ function replaceI18NValuesWithRegex(i18nStr, values) {
12
+ if (typeof values !== 'undefined') {
13
+ if (Array.isArray(values)) {
14
+ for (let i = 0; i < values.length; i++) {
15
+ i18nStr = i18nStr.replace(new RegExp(`\\{${i}\\}`, 'g'), values[i]);
16
+ }
17
+ } else {
18
+ i18nStr = i18nStr.replace(new RegExp('\\{0\\}', 'g'), values);
19
+ }
20
+ }
21
+ return i18nStr;
22
+ }
23
+ var _default = exports.default = {
24
+ i18N: async ({
25
+ page
26
+ }, use) => {
27
+ await use(async (key, values) => {
28
+ const i18nValue = await page.evaluate(i18nKey => window.i18n[i18nKey], key);
29
+ const i18nStr = replaceI18NValuesWithRegex(i18nValue, values);
30
+ return i18nStr;
31
+ });
32
+ }
33
+ };
@@ -9,11 +9,15 @@ var _page = _interopRequireDefault(require("./page"));
9
9
  var _context = _interopRequireDefault(require("./context"));
10
10
  var _cacheLayer = _interopRequireDefault(require("./cacheLayer"));
11
11
  var _addTags = _interopRequireDefault(require("./addTags"));
12
+ var _i18N = _interopRequireDefault(require("./i18N"));
13
+ var _unauthenticatedPage = _interopRequireDefault(require("./unauthenticatedPage"));
12
14
  function getBuiltInFixtures(bddMode) {
13
15
  let builtInFixtures = {
14
16
  ..._page.default,
15
17
  ..._context.default,
16
- ..._cacheLayer.default
18
+ ..._cacheLayer.default,
19
+ ..._i18N.default,
20
+ ..._unauthenticatedPage.default
17
21
  };
18
22
  if (bddMode) {
19
23
  builtInFixtures = {
@@ -1,51 +1,65 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
7
- // function test(descrition, callback) {
8
- // return test(descrition, ({ page }) => {
9
- // const { locator, ...custompage } = page
10
- // callback({ page: custompage })
11
- // })
12
- // }
13
- // class FilteredPage {
14
- // constructor(page) {
15
- // this.page = page;
16
- // this.allowedMethods = ['getByText', 'getByTitle'];
17
- // this.context = page.context;
18
- // }
19
- // goto(...args) {
20
- // return this.page['goto'](...args);
21
- // }
22
- // getByRole(...args) {
23
- // return this.page['getByRole'](...args);
24
- // }
25
- // }
26
- // function FilteredPage(page) {
27
- // return {
28
- // getByRole: () => {
29
- // throw new Error('You cannnot use getByRole property')
30
- // }
31
- // }
32
- // }
8
+ var _getUsers = require("../helpers/auth/getUsers");
9
+ var _loginSteps = _interopRequireDefault(require("../helpers/auth/loginSteps"));
10
+ var _readConfigFile = require("../readConfigFile");
11
+ /* eslint-disable global-require */
12
+
13
+ function getTagInputFromSelectedTags(tags, inputString) {
14
+ const selectedTag = tags.find(tag => tag.startsWith(inputString));
15
+ let tagInput = null;
16
+ if (selectedTag) {
17
+ tagInput = selectedTag.split(`${inputString}_`).pop().toLowerCase();
18
+ }
19
+ return tagInput;
20
+ }
21
+ function getCustomAccountDetails(tags) {
22
+ const filteredTags = tags.filter(tag => tag.startsWith('@profile') || tag.startsWith('@edition') || tag.startsWith('@profile') || tag.startsWith('@darkLaunch'));
23
+ if (filteredTags && filteredTags.length > 0) {
24
+ const selectedProfile = getTagInputFromSelectedTags(filteredTags, '@profile');
25
+ const selectedEdition = getTagInputFromSelectedTags(filteredTags, '@edition');
26
+ const darkLaunchFeature = getTagInputFromSelectedTags(filteredTags, '@darkLaunch');
27
+ const user = (0, _getUsers.getUserForSelectedEditionAndProfile)(selectedEdition, selectedProfile, darkLaunchFeature);
28
+ return user;
29
+ }
30
+ return null;
31
+ }
32
+ const {
33
+ testSetup
34
+ } = (0, _readConfigFile.generateConfigFromFile)();
35
+ async function performDefaultPageSteps(page) {
36
+ if (testSetup.page) {
37
+ await testSetup.page(page);
38
+ } else {
39
+ await page.goto(process.env.domain);
40
+ }
41
+ }
33
42
  var _default = exports.default = {
34
43
  page: async ({
44
+ context,
45
+ $tags,
35
46
  page
36
47
  }, use) => {
37
- page.getBaseUrl = function () {
38
- if (process.env.mode === 'dev') {
39
- return `${process.env.domain}?devURL=${process.env.devUrl}`;
40
- }
41
- return `${process.env.domain}`;
42
- };
43
- page.getCustomPageUrl = function (url) {
44
- if (process.env.mode === 'dev') {
45
- return `${process.env.domain}/${url}?devURL=${process.env.devUrl}`;
46
- }
47
- return `${process.env.domain}/${url}`;
48
- };
49
- await use(page);
48
+ const customAccountDetails = getCustomAccountDetails($tags);
49
+ if (customAccountDetails === null) {
50
+ await performDefaultPageSteps(page);
51
+ await use(page);
52
+ } else {
53
+ await context.clearCookies();
54
+ await (0, _loginSteps.default)({
55
+ page,
56
+ role: `${customAccountDetails.role}-${customAccountDetails.edition}`,
57
+ useremail: customAccountDetails.email,
58
+ password: customAccountDetails.password
59
+ }, async () => page.url().includes(process.env.domain));
60
+ await performDefaultPageSteps(page);
61
+ await use(page);
62
+ await context.close();
63
+ }
50
64
  }
51
65
  };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = exports.default = {
8
+ unauthenticatedPage: async ({
9
+ browser
10
+ }, use) => {
11
+ const context = await browser.newContext({
12
+ storageState: null
13
+ });
14
+ const unauthenticatedPage = await context.newPage();
15
+ await use(unauthenticatedPage);
16
+ await context.close();
17
+ }
18
+ };
@@ -9,21 +9,32 @@ var _path = _interopRequireDefault(require("path"));
9
9
  var _fileUtils = require("../../utils/fileUtils");
10
10
  var _logger = require("../../utils/logger");
11
11
  var _readConfigFile = require("./readConfigFile");
12
+ function deleteAuthFiles(authFilePath) {
13
+ authFilePath.split('/').pop();
14
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, `Deleting auth files present in ${authFilePath}`);
15
+ (0, _fileUtils.deleteFolder)(_path.default.resolve(process.cwd(), authFilePath));
16
+ }
17
+ function deletePlaywrightReport(reportPath) {
18
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, `Deleting Playwright report ${reportPath}`);
19
+ (0, _fileUtils.deleteFolder)(reportPath);
20
+ }
21
+ function deleteGeneratedFeatures() {
22
+ const featuresGenPath = _path.default.resolve(process.cwd(), 'uat', '.features-gen');
23
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, `Deleting generated features at ${featuresGenPath}`);
24
+ (0, _fileUtils.deleteFolder)(featuresGenPath);
25
+ }
12
26
  function clearCaches() {
13
27
  try {
14
28
  const {
15
29
  authFilePath,
16
30
  reportPath
17
31
  } = (0, _readConfigFile.generateConfigFromFile)();
18
- authFilePath.split('/').pop();
19
- _logger.Logger.log(_logger.Logger.INFO_TYPE, `Deleting auth files present in ${authFilePath}`);
20
- (0, _fileUtils.deleteFolder)(_path.default.resolve(process.cwd(), authFilePath));
21
- _logger.Logger.log(_logger.Logger.INFO_TYPE, `Deleting Playwright report ${reportPath}`);
22
- (0, _fileUtils.deleteFolder)(reportPath);
23
- (0, _fileUtils.deleteFolder)(_path.default.resolve(process.cwd(), 'uat', '.features-gen'));
24
- _logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Caches Cleared');
32
+ deleteAuthFiles(authFilePath);
33
+ deletePlaywrightReport(reportPath);
34
+ deleteGeneratedFeatures();
35
+ _logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Caches Cleared. Now you can try running npm run uat');
25
36
  } catch (err) {
26
- _logger.Logger.log(_logger.Logger.FAILURE_TYPE, 'Error While clearing cookies');
37
+ _logger.Logger.log(_logger.Logger.FAILURE_TYPE, 'Error While clearing cookies. Try manually delete folder uat/playwright and uat/playwright-report');
27
38
  }
28
39
  }
29
40
  var _default = exports.default = clearCaches;
@@ -9,11 +9,11 @@ var _child_process = require("child_process");
9
9
  var _path = _interopRequireDefault(require("path"));
10
10
  var _logger = require("../../utils/logger");
11
11
  var _rootPath = require("../../utils/rootPath");
12
- const userArgs = process.argv.slice(3);
13
- const playwrightPath = _path.default.resolve((0, _rootPath.getExecutableBinaryPath)('playwright'));
14
- const command = playwrightPath;
15
- const args = ['codegen'].concat(userArgs);
16
12
  function generateCodegen() {
13
+ const domainUrl = process.argv.slice(3);
14
+ const playwrightPath = _path.default.resolve((0, _rootPath.getExecutableBinaryPath)('playwright'));
15
+ const command = playwrightPath;
16
+ const args = ['codegen'].concat(domainUrl);
17
17
  const childProcess = (0, _child_process.spawn)(command, args, {
18
18
  stdio: 'inherit'
19
19
  });
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BROWSER_PROJECT_MAPPING = void 0;
7
+ const BROWSER_PROJECT_MAPPING = exports.BROWSER_PROJECT_MAPPING = {
8
+ CHROME: 'chromium',
9
+ EDGE: 'Microsoft Edge',
10
+ FIREFOX: 'firefox',
11
+ SAFARI: 'webkit'
12
+ };
@@ -7,15 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.initializeEnvConfig = initializeEnvConfig;
8
8
  var _fs = require("fs");
9
9
  var _path = _interopRequireDefault(require("path"));
10
+ var _configFileNameProvider = require("./helpers/configFileNameProvider");
11
+ function setEnvironmentVariables(mode, configJSON) {
12
+ process.env.mode = mode;
13
+ for (const key in configJSON[mode]) {
14
+ process.env[key] = configJSON[mode][key];
15
+ }
16
+ }
10
17
  function initializeEnvConfig(mode = 'dev') {
11
18
  try {
12
- const configFile = (0, _fs.readFileSync)(_path.default.resolve(process.cwd(), './uat/env-config.json'));
19
+ const configFile = (0, _fs.readFileSync)(_path.default.resolve(process.cwd(), `./${(0, _configFileNameProvider.getEnvConfigFilePath)()}`));
13
20
  const configJSON = JSON.parse(configFile);
14
- process.env.mode = mode;
15
- for (const key in configJSON[mode]) {
16
- process.env[key] = configJSON[mode][key];
17
- }
21
+ setEnvironmentVariables(mode, configJSON);
18
22
  } catch (err) {
19
- throw new Error('Config File Not Exists. Please provide a config file to intiailize the environment variables');
23
+ throw new Error(`Config File Not Exists. Please provide a config file ${(0, _configFileNameProvider.getEnvConfigFilePath)()} to intiailize the environment variables`);
20
24
  }
21
25
  }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _getUrlOrigin = _interopRequireDefault(require("./getUrlOrigin"));
9
+ async function accountLogin(page, useremail, password) {
10
+ await page.locator('#login_id').fill(useremail);
11
+ await page.locator('#nextbtn').click();
12
+ await page.locator('#password').fill(password);
13
+ await page.locator('#nextbtn').click();
14
+ const domainUrlOrigin = (0, _getUrlOrigin.default)(process.env.domain);
15
+ await page.waitForNavigation();
16
+ await Promise.race([page.waitForURL(`${domainUrlOrigin}/**`), page.waitForURL('**/announcement/**')]);
17
+ }
18
+ var _default = exports.default = accountLogin;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.authDirectory = void 0;
8
+ exports.loadCookiesIfPresent = loadCookiesIfPresent;
9
+ exports.verifyIfCookieFileExists = verifyIfCookieFileExists;
10
+ var _path = _interopRequireDefault(require("path"));
11
+ var _fs = require("fs");
12
+ var _readConfigFile = require("../../readConfigFile");
13
+ /* eslint-disable no-console */
14
+
15
+ const {
16
+ uatDirectory
17
+ } = (0, _readConfigFile.generateConfigFromFile)();
18
+ const authDirectory = exports.authDirectory = _path.default.resolve(_path.default.join(uatDirectory, 'playwright', '.auth'));
19
+ const authContent = {
20
+ cookies: []
21
+ };
22
+ function verifyIfCookieFileExists(authFile) {
23
+ if (!(0, _fs.existsSync)(authDirectory)) {
24
+ console.log('Creating auth directory for the first time setup...');
25
+ (0, _fs.mkdirSync)(authDirectory, {
26
+ recursive: true
27
+ });
28
+ }
29
+ if (!(0, _fs.existsSync)(authFile)) {
30
+ console.log('creating auth file..');
31
+ (0, _fs.writeFileSync)(authFile, JSON.stringify(authContent, null, 2));
32
+ }
33
+ }
34
+ function convertCookiesToParse(cookies, authFilePath) {
35
+ try {
36
+ return JSON.parse(cookies);
37
+ } catch (err) {
38
+ throw new Error(` Error while parsing cookies ${err} \n${_path.default.resolve(process.cwd(), authFilePath)} File is Empty`);
39
+ // process.exit()
40
+ }
41
+ }
42
+ async function loadCookiesIfPresent(page, authFile) {
43
+ verifyIfCookieFileExists(authFile);
44
+ const cookies = (0, _fs.readFileSync)(authFile);
45
+ const parsedCookies = convertCookiesToParse(cookies, authFile);
46
+ await page.context().addCookies(parsedCookies.cookies === undefined ? [] : parsedCookies.cookies);
47
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ function getUrlOrigin(url) {
8
+ const {
9
+ origin
10
+ } = new URL(url);
11
+ return origin;
12
+ }
13
+ var _default = exports.default = getUrlOrigin;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getListOfUsers = getListOfUsers;
8
+ exports.getPrimaryUser = getPrimaryUser;
9
+ exports.getUserForSelectedEditionAndProfile = getUserForSelectedEditionAndProfile;
10
+ exports.isCI = isCI;
11
+ var _path = _interopRequireDefault(require("path"));
12
+ var _readConfigFile = require("../../readConfigFile");
13
+ /* eslint-disable global-require */
14
+ function isCI() {
15
+ return process.env.mode === 'CI' || process.env.mode === 'ci';
16
+ }
17
+ function getListOfUsers() {
18
+ let users;
19
+ const {
20
+ uatDirectory
21
+ } = (0, _readConfigFile.generateConfigFromFile)();
22
+ if (isCI()) {
23
+ users = require(_path.default.join(uatDirectory, 'conf/ci/actors/index'));
24
+ } else {
25
+ users = require(_path.default.join(uatDirectory, 'conf/dev/actors/index'));
26
+ }
27
+ return users;
28
+ }
29
+ function getPrimaryUser() {
30
+ let primaryUser;
31
+ const {
32
+ uatDirectory
33
+ } = (0, _readConfigFile.generateConfigFromFile)();
34
+ if (isCI()) {
35
+ primaryUser = require(_path.default.join(uatDirectory, 'conf/ci/settings.json'));
36
+ } else {
37
+ primaryUser = require(_path.default.join(uatDirectory, 'conf/dev/settings.json'));
38
+ }
39
+ return primaryUser;
40
+ }
41
+ function getUserForSelectedEditionAndProfile(preferedEdition, preferredProfile, darkLaunchFeature) {
42
+ const {
43
+ editions: userdata,
44
+ darkLaunch
45
+ } = getListOfUsers();
46
+ const primaryUser = getPrimaryUser();
47
+ const edition = preferedEdition || primaryUser.edition;
48
+ const profile = preferredProfile || primaryUser.role;
49
+ let selectedProfile = {};
50
+ if (darkLaunchFeature && darkLaunchFeature !== null) {
51
+ const {
52
+ profiles: darkLaunchProfiles,
53
+ ...darkLaunchEditionData
54
+ } = darkLaunch[darkLaunchFeature] ? darkLaunch[darkLaunchFeature][0] : {};
55
+ selectedProfile = darkLaunchProfiles.find(user => user.role === profile);
56
+ return {
57
+ ...darkLaunchEditionData,
58
+ ...selectedProfile
59
+ };
60
+ }
61
+ // TODO: We are returning the first data from array. We need to check the possiblity of having multiple users for same role and possibly round robin
62
+ // For this we need to get the data from ci environment.
63
+ const {
64
+ profiles,
65
+ ...editionData
66
+ } = userdata[edition] ? userdata[edition][0] : {};
67
+ selectedProfile = profiles.find(user => user.role === profile);
68
+ return {
69
+ ...editionData,
70
+ ...selectedProfile
71
+ };
72
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "accountLogin", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _accountLogin.default;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "getListOfUsers", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _getUsers.getListOfUsers;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "getPrimaryUser", {
20
+ enumerable: true,
21
+ get: function () {
22
+ return _getUsers.getPrimaryUser;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "getUserForSelectedEditionAndProfile", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _getUsers.getUserForSelectedEditionAndProfile;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "isCI", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _getUsers.isCI;
35
+ }
36
+ });
37
+ Object.defineProperty(exports, "loadCookiesIfPresent", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _checkAuthCookies.loadCookiesIfPresent;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, "performLoginSteps", {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _loginSteps.default;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "verifyIfCookieFileExists", {
50
+ enumerable: true,
51
+ get: function () {
52
+ return _checkAuthCookies.verifyIfCookieFileExists;
53
+ }
54
+ });
55
+ var _accountLogin = _interopRequireDefault(require("./accountLogin"));
56
+ var _checkAuthCookies = require("./checkAuthCookies");
57
+ var _getUsers = require("./getUsers");
58
+ var _loginSteps = _interopRequireDefault(require("./loginSteps"));
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _path = _interopRequireDefault(require("path"));
9
+ var _accountLogin = _interopRequireDefault(require("./accountLogin"));
10
+ var _checkAuthCookies = require("./checkAuthCookies");
11
+ /* eslint-disable no-console */
12
+
13
+ async function performLoginSteps({
14
+ page,
15
+ role,
16
+ useremail,
17
+ password
18
+ }, isLoggedIn) {
19
+ const authFile = _path.default.resolve(_path.default.join(_checkAuthCookies.authDirectory, `${role}-cookies.json`));
20
+ await (0, _checkAuthCookies.loadCookiesIfPresent)(page, authFile);
21
+ await page.goto(process.env.domain);
22
+ await page.waitForNavigation();
23
+ const loginStatus = await isLoggedIn(page);
24
+ if (!loginStatus) {
25
+ await (0, _accountLogin.default)(page, useremail, password);
26
+ await page.goto(process.env.domain);
27
+
28
+ // await page.waitForLoadState();
29
+
30
+ await isLoggedIn(page);
31
+ await page.context().storageState({
32
+ path: authFile
33
+ });
34
+ }
35
+ }
36
+ var _default = exports.default = performLoginSteps;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getEnvConfigFilePath = getEnvConfigFilePath;
7
+ exports.getUATFileName = getUATFileName;
8
+ function getUATFileName() {
9
+ return 'uat.config.js';
10
+ }
11
+ function getEnvConfigFilePath() {
12
+ return `uat/env-config.json`;
13
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _logger = require("../../../utils/logger");
8
+ var _readConfigFile = require("../readConfigFile");
9
+ function getUserFixtures() {
10
+ const {
11
+ additionalPages
12
+ } = (0, _readConfigFile.generateConfigFromFile)();
13
+ if (additionalPages.page || additionalPages.context) {
14
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Not allowed to override the page and context fixture. Use Test Setup in uat configuration');
15
+ }
16
+ return additionalPages;
17
+ }
18
+ var _default = exports.default = getUserFixtures;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mergeObjects = mergeObjects;
7
+ // Utility function to merge objects using spread operator
8
+ function mergeObjects(obj1, obj2) {
9
+ return {
10
+ ...obj1,
11
+ ...obj2
12
+ };
13
+ }