@zohodesk/testinglibrary 0.1.5 → 0.1.6
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.
- package/build/core/playwright/custom-commands.js +1 -1
- package/build/core/playwright/index.js +6 -0
- package/build/core/playwright/readConfigFile.js +3 -1
- package/build/core/playwright/tag-processor.js +64 -0
- package/build/core/playwright/test-runner.js +5 -2
- package/changelog.md +13 -0
- package/npm-shrinkwrap.json +1 -1
- package/package.json +3 -3
|
@@ -55,6 +55,7 @@ const {
|
|
|
55
55
|
bddMode
|
|
56
56
|
} = (0, _readConfigFile.generateConfigFromFile)();
|
|
57
57
|
let base = bddMode ? _bddFramework.test : _test.test;
|
|
58
|
+
const cacheMap = new Map();
|
|
58
59
|
const test = exports.test = base.extend({
|
|
59
60
|
page: async ({
|
|
60
61
|
page
|
|
@@ -98,6 +99,11 @@ const test = exports.test = base.extend({
|
|
|
98
99
|
await context.addInitScript(() => window.localStorage.setItem('isDnBannerHide', true));
|
|
99
100
|
await use(context);
|
|
100
101
|
},
|
|
102
|
+
cacheLayer: async ({
|
|
103
|
+
context
|
|
104
|
+
}, use) => {
|
|
105
|
+
await use(cacheMap);
|
|
106
|
+
},
|
|
101
107
|
...additionalPages
|
|
102
108
|
});
|
|
103
109
|
const {
|
|
@@ -34,7 +34,8 @@ function getDefaultConfig() {
|
|
|
34
34
|
additionalPages: {},
|
|
35
35
|
featureFilesFolder: 'feature-files',
|
|
36
36
|
stepDefinitionsFolder: 'steps',
|
|
37
|
-
testIdAttribute: 'data-testid'
|
|
37
|
+
testIdAttribute: 'data-testid',
|
|
38
|
+
editionOrder: ['Free', 'Express', 'Standard', 'Professional', 'Enterprise']
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
function combineDefaultConfigWithUserConfig(userConfiguration) {
|
|
@@ -83,6 +84,7 @@ function combineDefaultConfigWithUserConfig(userConfiguration) {
|
|
|
83
84
|
* @property {string} stepDefinitionsFolder: folder name under which step implementations will be placed. Default is steps
|
|
84
85
|
* @property {viewportConfig} viewport: viewport configuration for the browser. Default is { width: 1280, height: 720 }
|
|
85
86
|
* @property {string} testIdAttribute: Change the default data-testid attribute. configure what attribute to search while calling getByTestId
|
|
87
|
+
* @property {Array} editionOrder: Order in the form of larger editions in the back. Edition with the most privelages should be last
|
|
86
88
|
*/
|
|
87
89
|
|
|
88
90
|
/**
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.tagProcessor = tagProcessor;
|
|
7
|
+
function getTagsString(tags, editionTags) {
|
|
8
|
+
return tags && tags !== '' ? `${tags} and not (${editionTags})` : `not (${editionTags})`;
|
|
9
|
+
}
|
|
10
|
+
function getEdition(edition) {
|
|
11
|
+
if (edition.startsWith('<=')) {
|
|
12
|
+
return ['<=', edition.slice(2)];
|
|
13
|
+
} else if (edition.startsWith('>=')) {
|
|
14
|
+
return ['>=', edition.slice(2)];
|
|
15
|
+
} else if (edition.startsWith('<')) {
|
|
16
|
+
return ['<', edition.slice(1)];
|
|
17
|
+
} else if (edition.startsWith('>')) {
|
|
18
|
+
return ['>', edition.slice(1)];
|
|
19
|
+
}
|
|
20
|
+
return [null, edition];
|
|
21
|
+
}
|
|
22
|
+
function editionPreprocessing(editionOrder, selectedEdition) {
|
|
23
|
+
const [operator, editionToBeSearched] = getEdition(selectedEdition.toLowerCase());
|
|
24
|
+
const index = editionOrder.findIndex(edition => edition.toLowerCase() === editionToBeSearched);
|
|
25
|
+
if (index !== -1) {
|
|
26
|
+
let resultArray;
|
|
27
|
+
if (operator === '<=') {
|
|
28
|
+
resultArray = editionOrder.slice(index + 1);
|
|
29
|
+
} else if (operator === '>=') {
|
|
30
|
+
resultArray = editionOrder.slice(0, index);
|
|
31
|
+
} else if (operator === '<') {
|
|
32
|
+
resultArray = editionOrder.slice(index);
|
|
33
|
+
} else if (operator === '>') {
|
|
34
|
+
resultArray = editionOrder.slice(0, index + 1);
|
|
35
|
+
} else {
|
|
36
|
+
resultArray = editionOrder.filter((_, order) => order !== index);
|
|
37
|
+
}
|
|
38
|
+
return resultArray;
|
|
39
|
+
}
|
|
40
|
+
Logger.log(Logger.INFO_TYPE, `No matching editions ${selectedEdition} found. Running with default edition`);
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
function buildEditionTags(editionArgs, operator) {
|
|
44
|
+
return editionArgs.map(edition => `@edition_${edition}`).join(` ${operator} `);
|
|
45
|
+
}
|
|
46
|
+
function tagProcessor(userArgsObject, editionOrder) {
|
|
47
|
+
let tagArgs = userArgsObject['tags'];
|
|
48
|
+
const edition = userArgsObject['edition'] || null;
|
|
49
|
+
if (edition !== null) {
|
|
50
|
+
let editionsArray = edition.split(',');
|
|
51
|
+
if (editionsArray.length === 1) {
|
|
52
|
+
const editionArgs = editionPreprocessing(editionOrder, edition);
|
|
53
|
+
if (editionArgs && editionArgs.length > 0) {
|
|
54
|
+
const editionTags = buildEditionTags(editionArgs, 'or');
|
|
55
|
+
tagArgs = `${getTagsString(tagArgs, editionTags)}`;
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
// More than one edition given
|
|
59
|
+
const editionTags = buildEditionTags(editionsArray, 'and');
|
|
60
|
+
tagArgs = `${getTagsString(tagArgs, editionTags)}`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return tagArgs;
|
|
64
|
+
}
|
|
@@ -13,6 +13,7 @@ var _envInitializer = require("./env-initializer");
|
|
|
13
13
|
var _logger = require("../../utils/logger");
|
|
14
14
|
var _readConfigFile = require("./readConfigFile");
|
|
15
15
|
var _rootPath = require("../../utils/rootPath");
|
|
16
|
+
var _tagProcessor = require("./tag-processor");
|
|
16
17
|
function parseUserArgs() {
|
|
17
18
|
return (0, _cliArgsToObject.cliArgsToObject)(process.argv.slice(2));
|
|
18
19
|
}
|
|
@@ -85,13 +86,15 @@ function runPlaywright(command, args) {
|
|
|
85
86
|
function main() {
|
|
86
87
|
const userArgsObject = parseUserArgs();
|
|
87
88
|
// eslint-disable-next-line
|
|
88
|
-
|
|
89
|
+
|
|
89
90
|
const {
|
|
90
91
|
debug,
|
|
91
92
|
mode = 'dev',
|
|
92
93
|
bddMode = false,
|
|
93
|
-
headless = false
|
|
94
|
+
headless = false,
|
|
95
|
+
editionOrder
|
|
94
96
|
} = (0, _readConfigFile.generateConfigFromFile)();
|
|
97
|
+
const tagArgs = (0, _tagProcessor.tagProcessor)(userArgsObject, editionOrder);
|
|
95
98
|
const playwrightArgs = getPlaywrightArgs(userArgsObject, debug, bddMode, tagArgs, headless);
|
|
96
99
|
(0, _envInitializer.initializeEnvConfig)(userArgsObject.mode ? userArgsObject.mode : mode);
|
|
97
100
|
const playwrightPath = _path.default.resolve((0, _rootPath.getExecutableBinaryPath)('playwright'));
|
package/changelog.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## Framework that abstracts the configuration for playwright and Jest
|
|
4
4
|
|
|
5
|
+
# 0.1.6
|
|
6
|
+
|
|
7
|
+
**Enhancements**
|
|
8
|
+
- New Command option Added `--edition`.
|
|
9
|
+
- New Configuration Added `editionOrder`.
|
|
10
|
+
`In uat.config.js, editionOrder: ['Free', 'Express']`
|
|
11
|
+
- Cache Layer added
|
|
12
|
+
|
|
13
|
+
**USAGE**
|
|
14
|
+
- npm run uat --edition="Free"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
5
18
|
# 0.1.5
|
|
6
19
|
|
|
7
20
|
**Enhancements**
|
package/npm-shrinkwrap.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zohodesk/testinglibrary",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
"@babel/preset-react": "7.22.5",
|
|
24
24
|
"@cucumber/cucumber": "9.2.0",
|
|
25
25
|
"@playwright/test": "1.40.1",
|
|
26
|
-
"playwright": "1.40.1",
|
|
27
26
|
"@testing-library/jest-dom": "5.11.9",
|
|
28
27
|
"@testing-library/react": "11.2.7",
|
|
29
28
|
"@testing-library/react-hooks": "7.0.2",
|
|
@@ -32,7 +31,8 @@
|
|
|
32
31
|
"fast-glob": "3.3.1",
|
|
33
32
|
"jest": "29.6.2",
|
|
34
33
|
"jest-environment-jsdom": "29.6.2",
|
|
35
|
-
"msw": "1.2.3"
|
|
34
|
+
"msw": "1.2.3",
|
|
35
|
+
"playwright": "1.40.1"
|
|
36
36
|
},
|
|
37
37
|
"bin": {
|
|
38
38
|
"ZDTestingFramework": "./bin/cli.js"
|