@zohodesk/testinglibrary 3.1.0 → 3.1.1

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.
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _page = require("./page");
8
+ var _default = exports.default = {
9
+ executionContext: async ({
10
+ $tags
11
+ }, use) => {
12
+ let testPortalActorDetails = {
13
+ actorInfo: (0, _page.getCustomAccountDetails)($tags)
14
+ };
15
+ await use(testPortalActorDetails);
16
+ }
17
+ };
@@ -11,6 +11,7 @@ var _cacheLayer = _interopRequireDefault(require("./cacheLayer"));
11
11
  var _addTags = _interopRequireDefault(require("./addTags"));
12
12
  var _i18N = _interopRequireDefault(require("./i18N"));
13
13
  var _unauthenticatedPage = _interopRequireDefault(require("./unauthenticatedPage"));
14
+ var _executionContext = _interopRequireDefault(require("./executionContext"));
14
15
  function extractTagsFromTitle(text) {
15
16
  return text.match(/@\w+/g) || [];
16
17
  }
@@ -20,7 +21,8 @@ function getBuiltInFixtures(bddMode) {
20
21
  ..._context.default,
21
22
  ..._cacheLayer.default,
22
23
  ..._i18N.default,
23
- ..._unauthenticatedPage.default
24
+ ..._unauthenticatedPage.default,
25
+ ..._executionContext.default
24
26
  };
25
27
  if (bddMode) {
26
28
  builtInFixtures = {
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ exports.getCustomAccountDetails = getCustomAccountDetails;
7
8
  var _auth = require("../helpers/auth");
8
9
  var _readConfigFile = require("../readConfigFile");
9
10
  /* eslint-disable global-require */
@@ -57,9 +58,10 @@ var _default = exports.default = {
57
58
  page: async ({
58
59
  context,
59
60
  $tags,
60
- page
61
+ page,
62
+ executionContext
61
63
  }, use, testInfo) => {
62
- let testPortalDetails = getCustomAccountDetails($tags);
64
+ let testPortalDetails = executionContext.actorInfo;
63
65
  let testDetails = {
64
66
  page,
65
67
  $tags,
@@ -7,20 +7,20 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
  var _fs = require("fs");
10
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
11
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
12
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
13
- var _getLockFilePath = /*#__PURE__*/new WeakSet();
10
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
11
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
12
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
13
+ var _FileMutex_brand = /*#__PURE__*/new WeakSet();
14
14
  class FileMutex {
15
15
  constructor(directory, lockFileName, email, authFile, fileDeletionTimeoutConfig) {
16
- _classPrivateMethodInitSpec(this, _getLockFilePath);
16
+ _classPrivateMethodInitSpec(this, _FileMutex_brand);
17
17
  this.directory = directory;
18
18
  this.lockFileName = lockFileName + ".lock";
19
19
  this.email = email;
20
20
  this.authFile = authFile;
21
21
  this.fileDeletionTimeout = fileDeletionTimeoutConfig.timeout;
22
22
  this.createDirectoryIfNotExist();
23
- this.lockFilePath = _classPrivateMethodGet(this, _getLockFilePath, _getLockFilePath2).call(this);
23
+ this.lockFilePath = _assertClassBrand(_FileMutex_brand, this, _getLockFilePath).call(this);
24
24
  }
25
25
  async acquire() {
26
26
  if ((0, _fs.existsSync)(this.authFile)) {
@@ -70,7 +70,7 @@ class FileMutex {
70
70
  }
71
71
  }
72
72
  }
73
- function _getLockFilePath2() {
73
+ function _getLockFilePath() {
74
74
  return _path.default.resolve(_path.default.join(this.directory, this.lockFileName));
75
75
  }
76
76
  var _default = exports.default = FileMutex;
@@ -1,23 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _logger = require("../../utils/logger");
4
- function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
5
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
- function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
7
- var _buildTagsString = /*#__PURE__*/new WeakSet();
8
- var _parseEdition = /*#__PURE__*/new WeakSet();
9
- var _processSingleEdition = /*#__PURE__*/new WeakSet();
10
- var _processMultipleEditions = /*#__PURE__*/new WeakSet();
11
- var _getEditionArgs = /*#__PURE__*/new WeakSet();
12
- var _buildEditionTags = /*#__PURE__*/new WeakSet();
4
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
5
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
6
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
7
+ var _TagProcessor_brand = /*#__PURE__*/new WeakSet();
13
8
  class TagProcessor {
14
9
  constructor(editionOrder) {
15
- _classPrivateMethodInitSpec(this, _buildEditionTags);
16
- _classPrivateMethodInitSpec(this, _getEditionArgs);
17
- _classPrivateMethodInitSpec(this, _processMultipleEditions);
18
- _classPrivateMethodInitSpec(this, _processSingleEdition);
19
- _classPrivateMethodInitSpec(this, _parseEdition);
20
- _classPrivateMethodInitSpec(this, _buildTagsString);
10
+ _classPrivateMethodInitSpec(this, _TagProcessor_brand);
21
11
  this.editionOrder = editionOrder;
22
12
  }
23
13
  processTags(userArgs) {
@@ -25,36 +15,36 @@ class TagProcessor {
25
15
  const edition = userArgs['edition'] || null;
26
16
  if (!edition) return tagArgs;
27
17
  const editionsArray = edition.split(',');
28
- const editionTags = editionsArray.length === 1 ? _classPrivateMethodGet(this, _processSingleEdition, _processSingleEdition2).call(this, editionsArray[0], tagArgs) : _classPrivateMethodGet(this, _processMultipleEditions, _processMultipleEditions2).call(this, editionsArray, tagArgs);
18
+ const editionTags = editionsArray.length === 1 ? _assertClassBrand(_TagProcessor_brand, this, _processSingleEdition).call(this, editionsArray[0], tagArgs) : _assertClassBrand(_TagProcessor_brand, this, _processMultipleEditions).call(this, editionsArray, tagArgs);
29
19
  return editionTags;
30
20
  }
31
21
  }
32
- function _buildTagsString2(tags, editionTags) {
22
+ function _buildTagsString(tags, editionTags) {
33
23
  return tags && tags !== '' ? `${tags} and not (${editionTags})` : `not (${editionTags})`;
34
24
  }
35
- function _parseEdition2(edition) {
25
+ function _parseEdition(edition) {
36
26
  if (edition.startsWith('<=')) return ['<=', edition.slice(2)];
37
27
  if (edition.startsWith('>=')) return ['>=', edition.slice(2)];
38
28
  if (edition.startsWith('<')) return ['<', edition.slice(1)];
39
29
  if (edition.startsWith('>')) return ['>', edition.slice(1)];
40
30
  return [null, edition];
41
31
  }
42
- function _processSingleEdition2(selectedEdition, tagArgs) {
43
- const editionArgs = _classPrivateMethodGet(this, _getEditionArgs, _getEditionArgs2).call(this, selectedEdition);
32
+ function _processSingleEdition(selectedEdition, tagArgs) {
33
+ const editionArgs = _assertClassBrand(_TagProcessor_brand, this, _getEditionArgs).call(this, selectedEdition);
44
34
  if (editionArgs && editionArgs.length > 0) {
45
- const editionTags = _classPrivateMethodGet(this, _buildEditionTags, _buildEditionTags2).call(this, editionArgs, 'or');
46
- return _classPrivateMethodGet(this, _buildTagsString, _buildTagsString2).call(this, tagArgs, editionTags);
35
+ const editionTags = _assertClassBrand(_TagProcessor_brand, this, _buildEditionTags).call(this, editionArgs, 'or');
36
+ return _assertClassBrand(_TagProcessor_brand, this, _buildTagsString).call(this, tagArgs, editionTags);
47
37
  }
48
38
  _logger.Logger.log(_logger.Logger.INFO_TYPE, `No matching editions for ${selectedEdition} found. Running with default edition`);
49
39
  return tagArgs;
50
40
  }
51
- function _processMultipleEditions2(editionsArray, tagArgs) {
41
+ function _processMultipleEditions(editionsArray, tagArgs) {
52
42
  const filteredEditions = this.editionOrder.filter(edition => !editionsArray.includes(edition));
53
- const editionTags = _classPrivateMethodGet(this, _buildEditionTags, _buildEditionTags2).call(this, filteredEditions, 'or');
54
- return _classPrivateMethodGet(this, _buildTagsString, _buildTagsString2).call(this, tagArgs, editionTags);
43
+ const editionTags = _assertClassBrand(_TagProcessor_brand, this, _buildEditionTags).call(this, filteredEditions, 'or');
44
+ return _assertClassBrand(_TagProcessor_brand, this, _buildTagsString).call(this, tagArgs, editionTags);
55
45
  }
56
- function _getEditionArgs2(selectedEdition) {
57
- const [operator, editionValue] = _classPrivateMethodGet(this, _parseEdition, _parseEdition2).call(this, selectedEdition.toLowerCase());
46
+ function _getEditionArgs(selectedEdition) {
47
+ const [operator, editionValue] = _assertClassBrand(_TagProcessor_brand, this, _parseEdition).call(this, selectedEdition.toLowerCase());
58
48
  const index = this.editionOrder.findIndex(edition => edition.toLowerCase() === editionValue);
59
49
  if (index === -1) {
60
50
  _logger.Logger.log(_logger.Logger.INFO_TYPE, `No matching editions for ${selectedEdition} found. Running with default edition`);
@@ -73,7 +63,7 @@ function _getEditionArgs2(selectedEdition) {
73
63
  return this.editionOrder.filter((_, i) => i !== index);
74
64
  }
75
65
  }
76
- function _buildEditionTags2(editionArgs, operator = 'or') {
66
+ function _buildEditionTags(editionArgs, operator = 'or') {
77
67
  return editionArgs.map(edition => `@edition_${edition}`).join(` ${operator} `);
78
68
  }
79
69
  module.exports = TagProcessor;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _page = require("../../../../../core/playwright/builtInFixtures/page");
5
+ var _executionContext = _interopRequireDefault(require("../../../../../core/playwright/builtInFixtures/executionContext"));
6
+ jest.mock('../../../../../core/playwright/builtInFixtures/page');
7
+ describe('executionContext', () => {
8
+ test('should pass actorInfo with details from getCustomAccountDetails to use', async () => {
9
+ const mockTags = ['tag1', 'tag2'];
10
+ const mockActorInfo = {
11
+ id: '1',
12
+ edition: 'enterprise',
13
+ orgName: 'orgName',
14
+ profile: 'admin',
15
+ email: 'xxx.x+uat@zohotest.com'
16
+ };
17
+ _page.getCustomAccountDetails.mockReturnValue(mockActorInfo);
18
+ const use = jest.fn();
19
+ await _executionContext.default.executionContext({
20
+ $tags: mockTags
21
+ }, use);
22
+ expect(_page.getCustomAccountDetails).toHaveBeenCalledWith(mockTags);
23
+ expect(use).toHaveBeenCalledWith({
24
+ actorInfo: mockActorInfo
25
+ });
26
+ });
27
+ });