@zohodesk/testinglibrary 0.4.32-experimental → 0.4.34-experimental
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/.gitlab-ci.yml +12 -20
- package/build/core/playwright/builtInFixtures/page.js +10 -21
- package/build/core/playwright/custom-commands.js +1 -1
- package/build/core/playwright/helpers/auth/loginSteps.js +0 -3
- package/build/core/playwright/helpers/fileMutex.js +2 -2
- package/build/core/playwright/tagProcessor.js +7 -5
- package/build/core/playwright/test-runner.js +1 -1
- package/build/test/core/playwright/__tests__/tagProcessor.test.js +19 -18
- package/npm-shrinkwrap.json +104 -52
- package/package.json +4 -4
- package/unit_reports/unit-report.html +260 -0
package/.gitlab-ci.yml
CHANGED
|
@@ -14,18 +14,23 @@ stages:
|
|
|
14
14
|
|
|
15
15
|
default:
|
|
16
16
|
cache:
|
|
17
|
-
key: build-cache
|
|
17
|
+
key: node14-build-cache
|
|
18
18
|
paths:
|
|
19
19
|
- node_modules
|
|
20
20
|
- build
|
|
21
|
+
- npm-shrinkwrap.json
|
|
21
22
|
|
|
22
23
|
# Install dependencies stage
|
|
23
24
|
build:
|
|
24
25
|
stage: build
|
|
25
26
|
script:
|
|
27
|
+
- npm -v
|
|
28
|
+
- node -v
|
|
26
29
|
- npm install --ignore-scripts
|
|
27
30
|
- npm run build
|
|
28
31
|
- npm install
|
|
32
|
+
- npm shrinkwrap
|
|
33
|
+
- npm run build
|
|
29
34
|
|
|
30
35
|
# Unit tests stage
|
|
31
36
|
unit:
|
|
@@ -45,9 +50,7 @@ uat-auth:
|
|
|
45
50
|
- npm install $(npm pack ../../testing-framework | tail -1)
|
|
46
51
|
- output=$(npm run uatauth)
|
|
47
52
|
- echo "$output"
|
|
48
|
-
-
|
|
49
|
-
- exit 1
|
|
50
|
-
- fi
|
|
53
|
+
- node ../ValidateUATReport.js examples
|
|
51
54
|
|
|
52
55
|
artifacts:
|
|
53
56
|
when: always
|
|
@@ -61,9 +64,7 @@ uat-noauth:
|
|
|
61
64
|
- npm install $(npm pack ../../testing-framework | tail -1)
|
|
62
65
|
- output=$(npm run uatnoauth)
|
|
63
66
|
- echo "$output"
|
|
64
|
-
-
|
|
65
|
-
- exit 1
|
|
66
|
-
- fi
|
|
67
|
+
- node ../ValidateUATReport.js examples
|
|
67
68
|
|
|
68
69
|
artifacts:
|
|
69
70
|
when: always
|
|
@@ -77,9 +78,7 @@ uat-profile:
|
|
|
77
78
|
- npm install $(npm pack ../../testing-framework | tail -1)
|
|
78
79
|
- output=$(npm run uatprofile)
|
|
79
80
|
- echo "$output"
|
|
80
|
-
-
|
|
81
|
-
- exit 1
|
|
82
|
-
- fi
|
|
81
|
+
- node ../ValidateUATReport.js examples
|
|
83
82
|
|
|
84
83
|
artifacts:
|
|
85
84
|
when: always
|
|
@@ -89,17 +88,12 @@ uat-profile:
|
|
|
89
88
|
|
|
90
89
|
uat-unauth:
|
|
91
90
|
stage: uat
|
|
92
|
-
image: repository.desk.csez.zohocorpin.com/base-image/testing-framework-gitlab-runne-base:v2
|
|
93
91
|
script:
|
|
94
|
-
- npm install
|
|
95
|
-
- npm run build
|
|
96
92
|
- cd examples
|
|
97
93
|
- npm install $(npm pack ../../testing-framework | tail -1)
|
|
98
94
|
- output=$(npm run uatunauth)
|
|
99
95
|
- echo "$output"
|
|
100
|
-
-
|
|
101
|
-
- exit 1
|
|
102
|
-
- fi
|
|
96
|
+
- node ../ValidateUATReport.js examples
|
|
103
97
|
|
|
104
98
|
|
|
105
99
|
artifacts:
|
|
@@ -112,11 +106,9 @@ uat-nobdd:
|
|
|
112
106
|
script:
|
|
113
107
|
- cd nobdd
|
|
114
108
|
- npm install $(npm pack ../../testing-framework | tail -1)
|
|
115
|
-
- output=$(npm run uatnobdd)
|
|
109
|
+
- output=$(npm run uatnobdd -- --headless)
|
|
116
110
|
- echo "$output"
|
|
117
|
-
-
|
|
118
|
-
- exit 1
|
|
119
|
-
- fi
|
|
111
|
+
- node ../ValidateUATReport.js nobdd
|
|
120
112
|
|
|
121
113
|
|
|
122
114
|
artifacts:
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.default = void 0;
|
|
8
7
|
var _auth = require("../helpers/auth");
|
|
9
|
-
var _getUrlOrigin = _interopRequireDefault(require("../helpers/auth/getUrlOrigin"));
|
|
10
8
|
var _readConfigFile = require("../readConfigFile");
|
|
11
9
|
/* eslint-disable global-require */
|
|
12
10
|
|
|
@@ -44,19 +42,9 @@ async function loginSteps(pageDetail) {
|
|
|
44
42
|
await page.goto(process.env.domain);
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
|
-
async function performDefaultPageSteps({
|
|
48
|
-
context,
|
|
49
|
-
$tags,
|
|
50
|
-
page
|
|
51
|
-
}) {
|
|
45
|
+
async function performDefaultPageSteps(testInfo) {
|
|
52
46
|
if (testSetup.page && typeof testSetup.page === 'function') {
|
|
53
|
-
await testSetup.page(
|
|
54
|
-
context,
|
|
55
|
-
$tags,
|
|
56
|
-
page
|
|
57
|
-
});
|
|
58
|
-
} else {
|
|
59
|
-
await page.goto(process.env.domain);
|
|
47
|
+
await testSetup.page(testInfo);
|
|
60
48
|
}
|
|
61
49
|
}
|
|
62
50
|
async function verifyPageIsLoaded(testInfo) {
|
|
@@ -71,26 +59,22 @@ var _default = exports.default = {
|
|
|
71
59
|
$tags,
|
|
72
60
|
page
|
|
73
61
|
}, use) => {
|
|
62
|
+
let testPortalDetails, user;
|
|
74
63
|
try {
|
|
75
64
|
//This block is used to skip the login process if the @unauthenticated tag is added to the script
|
|
76
65
|
if ($tags.includes('@unauthenticated')) {
|
|
77
66
|
await context.clearCookies();
|
|
78
|
-
await use(page);
|
|
79
67
|
return;
|
|
80
68
|
}
|
|
81
69
|
const {
|
|
82
70
|
isAuthMode
|
|
83
71
|
} = (0, _readConfigFile.generateConfigFromFile)();
|
|
84
72
|
if (!isAuthMode) {
|
|
85
|
-
await use(page);
|
|
86
73
|
return;
|
|
87
74
|
}
|
|
88
|
-
|
|
75
|
+
testPortalDetails = getCustomAccountDetails($tags);
|
|
89
76
|
if (testPortalDetails) {
|
|
90
77
|
await context.clearCookies();
|
|
91
|
-
const {
|
|
92
|
-
email
|
|
93
|
-
} = testPortalDetails;
|
|
94
78
|
await (0, _auth.performLoginSteps)({
|
|
95
79
|
page,
|
|
96
80
|
$tags,
|
|
@@ -100,14 +84,19 @@ var _default = exports.default = {
|
|
|
100
84
|
return await verifyPageIsLoaded(testInfo);
|
|
101
85
|
}, loginSteps);
|
|
102
86
|
process.env.actorInfo = JSON.stringify(testPortalDetails);
|
|
87
|
+
} else {
|
|
88
|
+
user = (0, _auth.getDefaultActor)();
|
|
89
|
+
process.env.actorInfo = JSON.stringify(user);
|
|
103
90
|
}
|
|
104
91
|
} catch (e) {
|
|
105
92
|
console.error('Error during page', e);
|
|
106
93
|
} finally {
|
|
94
|
+
testPortalDetails = testPortalDetails || user;
|
|
107
95
|
await performDefaultPageSteps({
|
|
108
96
|
context,
|
|
109
97
|
$tags,
|
|
110
|
-
page
|
|
98
|
+
page,
|
|
99
|
+
...testPortalDetails
|
|
111
100
|
});
|
|
112
101
|
await use(page);
|
|
113
102
|
await context.close();
|
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CUSTOM_COMMANDS = void 0;
|
|
7
|
-
const CUSTOM_COMMANDS = exports.CUSTOM_COMMANDS = ['mode', 'tags', 'edition', 'browsers', 'filePath'];
|
|
7
|
+
const CUSTOM_COMMANDS = exports.CUSTOM_COMMANDS = ['mode', 'tags', 'edition', 'browsers', 'filePath', 'headless'];
|
|
@@ -25,12 +25,9 @@ async function performLoginSteps(testInfo, isLoggedIn, loginSteps) {
|
|
|
25
25
|
try {
|
|
26
26
|
await fileMutex.acquire();
|
|
27
27
|
await (0, _checkAuthCookies.loadCookiesIfPresent)(page, authFile);
|
|
28
|
-
await page.goto(process.env.domain);
|
|
29
|
-
await Promise.race([page.waitForNavigation(), page.waitForLoadState('networkidle'), page.waitForTimeout(5000)]);
|
|
30
28
|
const isAlreadyLoggedIn = await isLoggedIn(testInfo);
|
|
31
29
|
if (!isAlreadyLoggedIn) {
|
|
32
30
|
await loginSteps(testInfo);
|
|
33
|
-
await page.goto(process.env.domain);
|
|
34
31
|
await isLoggedIn(testInfo);
|
|
35
32
|
await page.context().storageState({
|
|
36
33
|
path: authFile
|
|
@@ -21,13 +21,13 @@ class FileMutex {
|
|
|
21
21
|
}
|
|
22
22
|
async acquire() {
|
|
23
23
|
_assertClassBrand(_FileMutex_brand, this, _createDirectoryIfNotExist).call(this);
|
|
24
|
-
const lockFilePath =
|
|
24
|
+
const lockFilePath = _assertClassBrand(_FileMutex_brand, this, _getLockFilePath).call(this);
|
|
25
25
|
try {
|
|
26
26
|
if (!(0, _fs.existsSync)(lockFilePath)) {
|
|
27
27
|
console.log(`[DEBUG] Creating missing lock file:`, this.lockFileName);
|
|
28
28
|
(0, _fs.writeFileSync)(lockFilePath, 'locked');
|
|
29
29
|
}
|
|
30
|
-
await _properLockfile.default.lock(
|
|
30
|
+
await _properLockfile.default.lock(lockFilePath, this.options);
|
|
31
31
|
} catch (err) {
|
|
32
32
|
throw new Error(`Failed to acquire lock after ${this.options.retries.retries} attempts: ${err.message}`);
|
|
33
33
|
}
|
|
@@ -10,12 +10,14 @@ class TagProcessor {
|
|
|
10
10
|
_classPrivateMethodInitSpec(this, _TagProcessor_brand);
|
|
11
11
|
this.editionOrder = editionOrder;
|
|
12
12
|
}
|
|
13
|
-
processTags(
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
processTags(config) {
|
|
14
|
+
const {
|
|
15
|
+
tags,
|
|
16
|
+
edition
|
|
17
|
+
} = config.getAll();
|
|
18
|
+
if (!edition) return tags;
|
|
17
19
|
const editionsArray = edition.split(',');
|
|
18
|
-
const editionTags = editionsArray.length === 1 ? _assertClassBrand(_TagProcessor_brand, this, _processSingleEdition).call(this, editionsArray[0],
|
|
20
|
+
const editionTags = editionsArray.length === 1 ? _assertClassBrand(_TagProcessor_brand, this, _processSingleEdition).call(this, editionsArray[0], tags) : _assertClassBrand(_TagProcessor_brand, this, _processMultipleEditions).call(this, editionsArray, tags);
|
|
19
21
|
return editionTags;
|
|
20
22
|
}
|
|
21
23
|
}
|
|
@@ -104,7 +104,7 @@ function main() {
|
|
|
104
104
|
//This is only used for pass the user arguments to need places in legacy code. We need to rewamp that also.
|
|
105
105
|
const userArgsObject = userArgConfig.getAll();
|
|
106
106
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
107
|
-
const tagArgs = tagProcessor.processTags(
|
|
107
|
+
const tagArgs = tagProcessor.processTags(uatConfig);
|
|
108
108
|
const runnerObj = new _Runner.default();
|
|
109
109
|
runnerObj.setTagArgs(tagArgs);
|
|
110
110
|
runnerObj.setUserArgs(userArgsObject);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
var _tagProcessor = _interopRequireDefault(require("../../../../../src/core/playwright/tagProcessor"));
|
|
5
|
+
var _Configuration = _interopRequireDefault(require("../../../../../src/core/playwright/configuration/Configuration.js"));
|
|
5
6
|
var _logger = require("../../../../utils/logger");
|
|
6
7
|
jest.mock('../../../../utils/logger');
|
|
7
8
|
describe('TagProcessor', () => {
|
|
@@ -11,83 +12,83 @@ describe('TagProcessor', () => {
|
|
|
11
12
|
});
|
|
12
13
|
test('should return tagArgs if no edition is provided', () => {
|
|
13
14
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
14
|
-
const userArgs = {
|
|
15
|
+
const userArgs = new _Configuration.default({
|
|
15
16
|
tags: 'tag1',
|
|
16
17
|
edition: null
|
|
17
|
-
};
|
|
18
|
+
});
|
|
18
19
|
const result = tagProcessor.processTags(userArgs);
|
|
19
20
|
expect(result).toBe('tag1');
|
|
20
21
|
});
|
|
21
22
|
test('should handle a single edition with <= operator', () => {
|
|
22
23
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
23
|
-
const userArgs = {
|
|
24
|
+
const userArgs = new _Configuration.default({
|
|
24
25
|
tags: 'tag1',
|
|
25
26
|
edition: '<=edition2'
|
|
26
|
-
};
|
|
27
|
+
});
|
|
27
28
|
const result = tagProcessor.processTags(userArgs);
|
|
28
29
|
expect(result).toBe('tag1 and not (@edition_edition3 or @edition_edition4)');
|
|
29
30
|
});
|
|
30
31
|
test('should handle a single edition with >= operator', () => {
|
|
31
32
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
32
|
-
const userArgs = {
|
|
33
|
+
const userArgs = new _Configuration.default({
|
|
33
34
|
tags: 'tag1',
|
|
34
35
|
edition: '>=edition2'
|
|
35
|
-
};
|
|
36
|
+
});
|
|
36
37
|
const result = tagProcessor.processTags(userArgs);
|
|
37
38
|
expect(result).toBe('tag1 and not (@edition_edition1)');
|
|
38
39
|
});
|
|
39
40
|
test('should handle a single edition with < operator', () => {
|
|
40
41
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
41
|
-
const userArgs = {
|
|
42
|
+
const userArgs = new _Configuration.default({
|
|
42
43
|
tags: 'tag1',
|
|
43
44
|
edition: '<edition3'
|
|
44
|
-
};
|
|
45
|
+
});
|
|
45
46
|
const result = tagProcessor.processTags(userArgs);
|
|
46
47
|
expect(result).toBe('tag1 and not (@edition_edition3 or @edition_edition4)');
|
|
47
48
|
});
|
|
48
49
|
test('should handle a single edition with > operator', () => {
|
|
49
50
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
50
|
-
const userArgs = {
|
|
51
|
+
const userArgs = new _Configuration.default({
|
|
51
52
|
tags: 'tag1',
|
|
52
53
|
edition: '>edition1'
|
|
53
|
-
};
|
|
54
|
+
});
|
|
54
55
|
const result = tagProcessor.processTags(userArgs);
|
|
55
56
|
expect(result).toBe('tag1 and not (@edition_edition1)');
|
|
56
57
|
});
|
|
57
58
|
test('should handle a single edition with no operator', () => {
|
|
58
59
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
59
|
-
const userArgs = {
|
|
60
|
+
const userArgs = new _Configuration.default({
|
|
60
61
|
tags: 'tag1',
|
|
61
62
|
edition: 'edition2'
|
|
62
|
-
};
|
|
63
|
+
});
|
|
63
64
|
const result = tagProcessor.processTags(userArgs);
|
|
64
65
|
expect(result).toBe('tag1 and not (@edition_edition1 or @edition_edition3 or @edition_edition4)');
|
|
65
66
|
});
|
|
66
67
|
test('should log a message if edition is not found', () => {
|
|
67
68
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
68
|
-
const userArgs = {
|
|
69
|
+
const userArgs = new _Configuration.default({
|
|
69
70
|
tags: 'tag1',
|
|
70
71
|
edition: 'nonexistentEdition'
|
|
71
|
-
};
|
|
72
|
+
});
|
|
72
73
|
const result = tagProcessor.processTags(userArgs);
|
|
73
74
|
expect(result).toBe('tag1');
|
|
74
75
|
expect(_logger.Logger.log).toHaveBeenCalledWith(_logger.Logger.INFO_TYPE, expect.stringContaining('No matching editions for nonexistentEdition found.'));
|
|
75
76
|
});
|
|
76
77
|
test('should handle multiple editions', () => {
|
|
77
78
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
78
|
-
const userArgs = {
|
|
79
|
+
const userArgs = new _Configuration.default({
|
|
79
80
|
tags: 'tag1',
|
|
80
81
|
edition: 'edition1,edition3'
|
|
81
|
-
};
|
|
82
|
+
});
|
|
82
83
|
const result = tagProcessor.processTags(userArgs);
|
|
83
84
|
expect(result).toBe('tag1 and not (@edition_edition2 or @edition_edition4)');
|
|
84
85
|
});
|
|
85
86
|
test('should build tags correctly when tags are empty', () => {
|
|
86
87
|
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
87
|
-
const userArgs = {
|
|
88
|
+
const userArgs = new _Configuration.default({
|
|
88
89
|
tags: '',
|
|
89
90
|
edition: 'edition1'
|
|
90
|
-
};
|
|
91
|
+
});
|
|
91
92
|
const result = tagProcessor.processTags(userArgs);
|
|
92
93
|
expect(result).toBe('not (@edition_edition2 or @edition_edition3 or @edition_edition4)');
|
|
93
94
|
});
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zohodesk/testinglibrary",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.34-experimental",
|
|
4
4
|
"lockfileVersion": 1,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"dependencies": {
|
|
@@ -2196,9 +2196,9 @@
|
|
|
2196
2196
|
"integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="
|
|
2197
2197
|
},
|
|
2198
2198
|
"@types/node": {
|
|
2199
|
-
"version": "22.10.
|
|
2200
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.
|
|
2201
|
-
"integrity": "sha512-
|
|
2199
|
+
"version": "22.10.5",
|
|
2200
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz",
|
|
2201
|
+
"integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==",
|
|
2202
2202
|
"requires": {
|
|
2203
2203
|
"undici-types": "~6.20.0"
|
|
2204
2204
|
}
|
|
@@ -2866,9 +2866,9 @@
|
|
|
2866
2866
|
}
|
|
2867
2867
|
},
|
|
2868
2868
|
"commander": {
|
|
2869
|
-
"version": "11.
|
|
2870
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-11.
|
|
2871
|
-
"integrity": "sha512-
|
|
2869
|
+
"version": "11.0.0",
|
|
2870
|
+
"resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
|
|
2871
|
+
"integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
|
|
2872
2872
|
"dev": true
|
|
2873
2873
|
},
|
|
2874
2874
|
"commondir": {
|
|
@@ -3131,9 +3131,9 @@
|
|
|
3131
3131
|
}
|
|
3132
3132
|
},
|
|
3133
3133
|
"electron-to-chromium": {
|
|
3134
|
-
"version": "1.5.
|
|
3135
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.
|
|
3136
|
-
"integrity": "sha512-
|
|
3134
|
+
"version": "1.5.76",
|
|
3135
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz",
|
|
3136
|
+
"integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ=="
|
|
3137
3137
|
},
|
|
3138
3138
|
"emittery": {
|
|
3139
3139
|
"version": "0.13.1",
|
|
@@ -3167,9 +3167,9 @@
|
|
|
3167
3167
|
}
|
|
3168
3168
|
},
|
|
3169
3169
|
"es-abstract": {
|
|
3170
|
-
"version": "1.23.
|
|
3171
|
-
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.
|
|
3172
|
-
"integrity": "sha512-
|
|
3170
|
+
"version": "1.23.9",
|
|
3171
|
+
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
|
|
3172
|
+
"integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
|
|
3173
3173
|
"dev": true,
|
|
3174
3174
|
"requires": {
|
|
3175
3175
|
"array-buffer-byte-length": "^1.0.2",
|
|
@@ -3183,10 +3183,11 @@
|
|
|
3183
3183
|
"es-define-property": "^1.0.1",
|
|
3184
3184
|
"es-errors": "^1.3.0",
|
|
3185
3185
|
"es-object-atoms": "^1.0.0",
|
|
3186
|
-
"es-set-tostringtag": "^2.0
|
|
3186
|
+
"es-set-tostringtag": "^2.1.0",
|
|
3187
3187
|
"es-to-primitive": "^1.3.0",
|
|
3188
3188
|
"function.prototype.name": "^1.1.8",
|
|
3189
|
-
"get-intrinsic": "^1.2.
|
|
3189
|
+
"get-intrinsic": "^1.2.7",
|
|
3190
|
+
"get-proto": "^1.0.0",
|
|
3190
3191
|
"get-symbol-description": "^1.1.0",
|
|
3191
3192
|
"globalthis": "^1.0.4",
|
|
3192
3193
|
"gopd": "^1.2.0",
|
|
@@ -3207,9 +3208,12 @@
|
|
|
3207
3208
|
"object-inspect": "^1.13.3",
|
|
3208
3209
|
"object-keys": "^1.1.1",
|
|
3209
3210
|
"object.assign": "^4.1.7",
|
|
3211
|
+
"own-keys": "^1.0.1",
|
|
3210
3212
|
"regexp.prototype.flags": "^1.5.3",
|
|
3211
3213
|
"safe-array-concat": "^1.1.3",
|
|
3214
|
+
"safe-push-apply": "^1.0.0",
|
|
3212
3215
|
"safe-regex-test": "^1.1.0",
|
|
3216
|
+
"set-proto": "^1.0.0",
|
|
3213
3217
|
"string.prototype.trim": "^1.2.10",
|
|
3214
3218
|
"string.prototype.trimend": "^1.0.9",
|
|
3215
3219
|
"string.prototype.trimstart": "^1.0.8",
|
|
@@ -3246,14 +3250,15 @@
|
|
|
3246
3250
|
}
|
|
3247
3251
|
},
|
|
3248
3252
|
"es-set-tostringtag": {
|
|
3249
|
-
"version": "2.0
|
|
3250
|
-
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.
|
|
3251
|
-
"integrity": "sha512-
|
|
3253
|
+
"version": "2.1.0",
|
|
3254
|
+
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
|
|
3255
|
+
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
|
|
3252
3256
|
"dev": true,
|
|
3253
3257
|
"requires": {
|
|
3254
|
-
"
|
|
3258
|
+
"es-errors": "^1.3.0",
|
|
3259
|
+
"get-intrinsic": "^1.2.6",
|
|
3255
3260
|
"has-tostringtag": "^1.0.2",
|
|
3256
|
-
"hasown": "^2.0.
|
|
3261
|
+
"hasown": "^2.0.2"
|
|
3257
3262
|
}
|
|
3258
3263
|
},
|
|
3259
3264
|
"es-to-primitive": {
|
|
@@ -3575,20 +3580,20 @@
|
|
|
3575
3580
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
|
|
3576
3581
|
},
|
|
3577
3582
|
"get-intrinsic": {
|
|
3578
|
-
"version": "1.2.
|
|
3579
|
-
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.
|
|
3580
|
-
"integrity": "sha512-
|
|
3583
|
+
"version": "1.2.7",
|
|
3584
|
+
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
|
|
3585
|
+
"integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
|
|
3581
3586
|
"requires": {
|
|
3582
3587
|
"call-bind-apply-helpers": "^1.0.1",
|
|
3583
|
-
"dunder-proto": "^1.0.0",
|
|
3584
3588
|
"es-define-property": "^1.0.1",
|
|
3585
3589
|
"es-errors": "^1.3.0",
|
|
3586
3590
|
"es-object-atoms": "^1.0.0",
|
|
3587
3591
|
"function-bind": "^1.1.2",
|
|
3592
|
+
"get-proto": "^1.0.0",
|
|
3588
3593
|
"gopd": "^1.2.0",
|
|
3589
3594
|
"has-symbols": "^1.1.0",
|
|
3590
3595
|
"hasown": "^2.0.2",
|
|
3591
|
-
"math-intrinsics": "^1.
|
|
3596
|
+
"math-intrinsics": "^1.1.0"
|
|
3592
3597
|
}
|
|
3593
3598
|
},
|
|
3594
3599
|
"get-package-type": {
|
|
@@ -3596,6 +3601,15 @@
|
|
|
3596
3601
|
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
|
|
3597
3602
|
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="
|
|
3598
3603
|
},
|
|
3604
|
+
"get-proto": {
|
|
3605
|
+
"version": "1.0.1",
|
|
3606
|
+
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
|
|
3607
|
+
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
|
|
3608
|
+
"requires": {
|
|
3609
|
+
"dunder-proto": "^1.0.1",
|
|
3610
|
+
"es-object-atoms": "^1.0.0"
|
|
3611
|
+
}
|
|
3612
|
+
},
|
|
3599
3613
|
"get-stream": {
|
|
3600
3614
|
"version": "6.0.1",
|
|
3601
3615
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
|
|
@@ -3908,12 +3922,15 @@
|
|
|
3908
3922
|
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
|
|
3909
3923
|
},
|
|
3910
3924
|
"is-async-function": {
|
|
3911
|
-
"version": "2.
|
|
3912
|
-
"resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.
|
|
3913
|
-
"integrity": "sha512-
|
|
3925
|
+
"version": "2.1.0",
|
|
3926
|
+
"resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz",
|
|
3927
|
+
"integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==",
|
|
3914
3928
|
"dev": true,
|
|
3915
3929
|
"requires": {
|
|
3916
|
-
"
|
|
3930
|
+
"call-bound": "^1.0.3",
|
|
3931
|
+
"get-proto": "^1.0.1",
|
|
3932
|
+
"has-tostringtag": "^1.0.2",
|
|
3933
|
+
"safe-regex-test": "^1.1.0"
|
|
3917
3934
|
}
|
|
3918
3935
|
},
|
|
3919
3936
|
"is-bigint": {
|
|
@@ -4002,11 +4019,14 @@
|
|
|
4002
4019
|
"integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="
|
|
4003
4020
|
},
|
|
4004
4021
|
"is-generator-function": {
|
|
4005
|
-
"version": "1.0
|
|
4006
|
-
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.
|
|
4007
|
-
"integrity": "sha512-
|
|
4022
|
+
"version": "1.1.0",
|
|
4023
|
+
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
|
|
4024
|
+
"integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
|
|
4008
4025
|
"requires": {
|
|
4009
|
-
"
|
|
4026
|
+
"call-bound": "^1.0.3",
|
|
4027
|
+
"get-proto": "^1.0.0",
|
|
4028
|
+
"has-tostringtag": "^1.0.2",
|
|
4029
|
+
"safe-regex-test": "^1.1.0"
|
|
4010
4030
|
}
|
|
4011
4031
|
},
|
|
4012
4032
|
"is-glob": {
|
|
@@ -4080,7 +4100,6 @@
|
|
|
4080
4100
|
"version": "1.2.1",
|
|
4081
4101
|
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
|
|
4082
4102
|
"integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
|
|
4083
|
-
"dev": true,
|
|
4084
4103
|
"requires": {
|
|
4085
4104
|
"call-bound": "^1.0.2",
|
|
4086
4105
|
"gopd": "^1.2.0",
|
|
@@ -5319,6 +5338,17 @@
|
|
|
5319
5338
|
"resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz",
|
|
5320
5339
|
"integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA=="
|
|
5321
5340
|
},
|
|
5341
|
+
"own-keys": {
|
|
5342
|
+
"version": "1.0.1",
|
|
5343
|
+
"resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
|
|
5344
|
+
"integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
|
|
5345
|
+
"dev": true,
|
|
5346
|
+
"requires": {
|
|
5347
|
+
"get-intrinsic": "^1.2.6",
|
|
5348
|
+
"object-keys": "^1.1.1",
|
|
5349
|
+
"safe-push-apply": "^1.0.0"
|
|
5350
|
+
}
|
|
5351
|
+
},
|
|
5322
5352
|
"p-limit": {
|
|
5323
5353
|
"version": "2.3.0",
|
|
5324
5354
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
|
@@ -5576,18 +5606,18 @@
|
|
|
5576
5606
|
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
|
|
5577
5607
|
},
|
|
5578
5608
|
"reflect.getprototypeof": {
|
|
5579
|
-
"version": "1.0.
|
|
5580
|
-
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.
|
|
5581
|
-
"integrity": "sha512-
|
|
5609
|
+
"version": "1.0.10",
|
|
5610
|
+
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
|
|
5611
|
+
"integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
|
|
5582
5612
|
"dev": true,
|
|
5583
5613
|
"requires": {
|
|
5584
5614
|
"call-bind": "^1.0.8",
|
|
5585
5615
|
"define-properties": "^1.2.1",
|
|
5586
|
-
"
|
|
5587
|
-
"es-abstract": "^1.23.6",
|
|
5616
|
+
"es-abstract": "^1.23.9",
|
|
5588
5617
|
"es-errors": "^1.3.0",
|
|
5589
|
-
"
|
|
5590
|
-
"
|
|
5618
|
+
"es-object-atoms": "^1.0.0",
|
|
5619
|
+
"get-intrinsic": "^1.2.7",
|
|
5620
|
+
"get-proto": "^1.0.1",
|
|
5591
5621
|
"which-builtin-type": "^1.2.1"
|
|
5592
5622
|
}
|
|
5593
5623
|
},
|
|
@@ -5634,14 +5664,16 @@
|
|
|
5634
5664
|
"integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA=="
|
|
5635
5665
|
},
|
|
5636
5666
|
"regexp.prototype.flags": {
|
|
5637
|
-
"version": "1.5.
|
|
5638
|
-
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.
|
|
5639
|
-
"integrity": "sha512-
|
|
5667
|
+
"version": "1.5.4",
|
|
5668
|
+
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
|
|
5669
|
+
"integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
|
|
5640
5670
|
"dev": true,
|
|
5641
5671
|
"requires": {
|
|
5642
|
-
"call-bind": "^1.0.
|
|
5672
|
+
"call-bind": "^1.0.8",
|
|
5643
5673
|
"define-properties": "^1.2.1",
|
|
5644
5674
|
"es-errors": "^1.3.0",
|
|
5675
|
+
"get-proto": "^1.0.1",
|
|
5676
|
+
"gopd": "^1.2.0",
|
|
5645
5677
|
"set-function-name": "^2.0.2"
|
|
5646
5678
|
}
|
|
5647
5679
|
},
|
|
@@ -5791,11 +5823,20 @@
|
|
|
5791
5823
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
|
5792
5824
|
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
|
5793
5825
|
},
|
|
5826
|
+
"safe-push-apply": {
|
|
5827
|
+
"version": "1.0.0",
|
|
5828
|
+
"resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
|
|
5829
|
+
"integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
|
|
5830
|
+
"dev": true,
|
|
5831
|
+
"requires": {
|
|
5832
|
+
"es-errors": "^1.3.0",
|
|
5833
|
+
"isarray": "^2.0.5"
|
|
5834
|
+
}
|
|
5835
|
+
},
|
|
5794
5836
|
"safe-regex-test": {
|
|
5795
5837
|
"version": "1.1.0",
|
|
5796
5838
|
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
|
|
5797
5839
|
"integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
|
|
5798
|
-
"dev": true,
|
|
5799
5840
|
"requires": {
|
|
5800
5841
|
"call-bound": "^1.0.2",
|
|
5801
5842
|
"es-errors": "^1.3.0",
|
|
@@ -5858,6 +5899,17 @@
|
|
|
5858
5899
|
"has-property-descriptors": "^1.0.2"
|
|
5859
5900
|
}
|
|
5860
5901
|
},
|
|
5902
|
+
"set-proto": {
|
|
5903
|
+
"version": "1.0.0",
|
|
5904
|
+
"resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
|
|
5905
|
+
"integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
|
|
5906
|
+
"dev": true,
|
|
5907
|
+
"requires": {
|
|
5908
|
+
"dunder-proto": "^1.0.1",
|
|
5909
|
+
"es-errors": "^1.3.0",
|
|
5910
|
+
"es-object-atoms": "^1.0.0"
|
|
5911
|
+
}
|
|
5912
|
+
},
|
|
5861
5913
|
"shallow-clone": {
|
|
5862
5914
|
"version": "3.0.1",
|
|
5863
5915
|
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
|
|
@@ -6257,9 +6309,9 @@
|
|
|
6257
6309
|
}
|
|
6258
6310
|
},
|
|
6259
6311
|
"typescript": {
|
|
6260
|
-
"version": "5.
|
|
6261
|
-
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.
|
|
6262
|
-
"integrity": "sha512
|
|
6312
|
+
"version": "5.4.2",
|
|
6313
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz",
|
|
6314
|
+
"integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==",
|
|
6263
6315
|
"dev": true
|
|
6264
6316
|
},
|
|
6265
6317
|
"unbox-primitive": {
|
|
@@ -6576,9 +6628,9 @@
|
|
|
6576
6628
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
|
6577
6629
|
},
|
|
6578
6630
|
"yaml": {
|
|
6579
|
-
"version": "2.
|
|
6580
|
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.
|
|
6581
|
-
"integrity": "sha512
|
|
6631
|
+
"version": "2.7.0",
|
|
6632
|
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
|
|
6633
|
+
"integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA=="
|
|
6582
6634
|
},
|
|
6583
6635
|
"yargs": {
|
|
6584
6636
|
"version": "17.7.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zohodesk/testinglibrary",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.34-experimental",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"@babel/polyfill": "7.12.1",
|
|
54
54
|
"@babel/preset-env": "7.22.15",
|
|
55
55
|
"@babel/runtime": "7.22.15",
|
|
56
|
-
"commander": "
|
|
57
|
-
"jest-html-reporter": "
|
|
58
|
-
"typescript": "
|
|
56
|
+
"commander": "11.0.0",
|
|
57
|
+
"jest-html-reporter": "3.10.2",
|
|
58
|
+
"typescript": "5.4.2"
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
<html><head><meta charset="utf-8"/><title>Unit Report</title><style type="text/css">html,
|
|
2
|
+
body {
|
|
3
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
4
|
+
font-size: 1rem;
|
|
5
|
+
margin: 0;
|
|
6
|
+
padding: 0;
|
|
7
|
+
color: #333;
|
|
8
|
+
}
|
|
9
|
+
body {
|
|
10
|
+
padding: 2rem 1rem;
|
|
11
|
+
font-size: 0.85rem;
|
|
12
|
+
}
|
|
13
|
+
.jesthtml-content {
|
|
14
|
+
margin: 0 auto;
|
|
15
|
+
max-width: 70rem;
|
|
16
|
+
}
|
|
17
|
+
header {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
}
|
|
21
|
+
#title {
|
|
22
|
+
margin: 0;
|
|
23
|
+
flex-grow: 1;
|
|
24
|
+
}
|
|
25
|
+
#logo {
|
|
26
|
+
height: 4rem;
|
|
27
|
+
}
|
|
28
|
+
#timestamp {
|
|
29
|
+
color: #777;
|
|
30
|
+
margin-top: 0.5rem;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** SUMMARY */
|
|
34
|
+
#summary {
|
|
35
|
+
color: #333;
|
|
36
|
+
margin: 2rem 0;
|
|
37
|
+
display: flex;
|
|
38
|
+
font-family: monospace;
|
|
39
|
+
font-size: 1rem;
|
|
40
|
+
}
|
|
41
|
+
#summary > div {
|
|
42
|
+
margin-right: 2rem;
|
|
43
|
+
background: #eee;
|
|
44
|
+
padding: 1rem;
|
|
45
|
+
min-width: 15rem;
|
|
46
|
+
}
|
|
47
|
+
#summary > div:last-child {
|
|
48
|
+
margin-right: 0;
|
|
49
|
+
}
|
|
50
|
+
@media only screen and (max-width: 720px) {
|
|
51
|
+
#summary {
|
|
52
|
+
flex-direction: column;
|
|
53
|
+
}
|
|
54
|
+
#summary > div {
|
|
55
|
+
margin-right: 0;
|
|
56
|
+
margin-top: 2rem;
|
|
57
|
+
}
|
|
58
|
+
#summary > div:first-child {
|
|
59
|
+
margin-top: 0;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.summary-total {
|
|
64
|
+
font-weight: bold;
|
|
65
|
+
margin-bottom: 0.5rem;
|
|
66
|
+
}
|
|
67
|
+
.summary-passed {
|
|
68
|
+
color: #4f8a10;
|
|
69
|
+
border-left: 0.4rem solid #4f8a10;
|
|
70
|
+
padding-left: 0.5rem;
|
|
71
|
+
}
|
|
72
|
+
.summary-failed,
|
|
73
|
+
.summary-obsolete-snapshots {
|
|
74
|
+
color: #d8000c;
|
|
75
|
+
border-left: 0.4rem solid #d8000c;
|
|
76
|
+
padding-left: 0.5rem;
|
|
77
|
+
}
|
|
78
|
+
.summary-pending {
|
|
79
|
+
color: #9f6000;
|
|
80
|
+
border-left: 0.4rem solid #9f6000;
|
|
81
|
+
padding-left: 0.5rem;
|
|
82
|
+
}
|
|
83
|
+
.summary-empty {
|
|
84
|
+
color: #999;
|
|
85
|
+
border-left: 0.4rem solid #999;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.test-result {
|
|
89
|
+
padding: 1rem;
|
|
90
|
+
margin-bottom: 0.25rem;
|
|
91
|
+
}
|
|
92
|
+
.test-result:last-child {
|
|
93
|
+
border: 0;
|
|
94
|
+
}
|
|
95
|
+
.test-result.passed {
|
|
96
|
+
background-color: #dff2bf;
|
|
97
|
+
color: #4f8a10;
|
|
98
|
+
}
|
|
99
|
+
.test-result.failed {
|
|
100
|
+
background-color: #ffbaba;
|
|
101
|
+
color: #d8000c;
|
|
102
|
+
}
|
|
103
|
+
.test-result.pending {
|
|
104
|
+
background-color: #ffdf61;
|
|
105
|
+
color: #9f6000;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.test-info {
|
|
109
|
+
display: flex;
|
|
110
|
+
justify-content: space-between;
|
|
111
|
+
}
|
|
112
|
+
.test-suitename {
|
|
113
|
+
width: 20%;
|
|
114
|
+
text-align: left;
|
|
115
|
+
font-weight: bold;
|
|
116
|
+
word-break: break-word;
|
|
117
|
+
}
|
|
118
|
+
.test-title {
|
|
119
|
+
width: 40%;
|
|
120
|
+
text-align: left;
|
|
121
|
+
font-style: italic;
|
|
122
|
+
}
|
|
123
|
+
.test-status {
|
|
124
|
+
width: 20%;
|
|
125
|
+
text-align: right;
|
|
126
|
+
}
|
|
127
|
+
.test-duration {
|
|
128
|
+
width: 10%;
|
|
129
|
+
text-align: right;
|
|
130
|
+
font-size: 0.75rem;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.failureMessages {
|
|
134
|
+
padding: 0 1rem;
|
|
135
|
+
margin-top: 1rem;
|
|
136
|
+
border-top: 1px dashed #d8000c;
|
|
137
|
+
}
|
|
138
|
+
.failureMessages.suiteFailure {
|
|
139
|
+
border-top: none;
|
|
140
|
+
}
|
|
141
|
+
.failureMsg {
|
|
142
|
+
white-space: pre-wrap;
|
|
143
|
+
white-space: -moz-pre-wrap;
|
|
144
|
+
white-space: -pre-wrap;
|
|
145
|
+
white-space: -o-pre-wrap;
|
|
146
|
+
word-wrap: break-word;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.suite-container {
|
|
150
|
+
margin-bottom: 2rem;
|
|
151
|
+
}
|
|
152
|
+
.suite-container > input[type="checkbox"] {
|
|
153
|
+
position: absolute;
|
|
154
|
+
left: -100vw;
|
|
155
|
+
}
|
|
156
|
+
.suite-container label {
|
|
157
|
+
display: block;
|
|
158
|
+
}
|
|
159
|
+
.suite-container .suite-tests {
|
|
160
|
+
overflow-y: hidden;
|
|
161
|
+
height: 0;
|
|
162
|
+
}
|
|
163
|
+
.suite-container > input[type="checkbox"]:checked ~ .suite-tests {
|
|
164
|
+
height: auto;
|
|
165
|
+
overflow: visible;
|
|
166
|
+
}
|
|
167
|
+
.suite-info {
|
|
168
|
+
padding: 1rem;
|
|
169
|
+
background-color: #eee;
|
|
170
|
+
color: #777;
|
|
171
|
+
display: flex;
|
|
172
|
+
align-items: center;
|
|
173
|
+
margin-bottom: 0.25rem;
|
|
174
|
+
}
|
|
175
|
+
.suite-info:hover {
|
|
176
|
+
background-color: #ddd;
|
|
177
|
+
cursor: pointer;
|
|
178
|
+
}
|
|
179
|
+
.suite-info .suite-path {
|
|
180
|
+
word-break: break-all;
|
|
181
|
+
flex-grow: 1;
|
|
182
|
+
font-family: monospace;
|
|
183
|
+
font-size: 1rem;
|
|
184
|
+
}
|
|
185
|
+
.suite-info .suite-time {
|
|
186
|
+
margin-left: 0.5rem;
|
|
187
|
+
padding: 0.2rem 0.3rem;
|
|
188
|
+
font-size: 0.75rem;
|
|
189
|
+
}
|
|
190
|
+
.suite-info .suite-time.warn {
|
|
191
|
+
background-color: #d8000c;
|
|
192
|
+
color: #fff;
|
|
193
|
+
}
|
|
194
|
+
.suite-info:before {
|
|
195
|
+
content: "\2303";
|
|
196
|
+
display: inline-block;
|
|
197
|
+
margin-right: 0.5rem;
|
|
198
|
+
transform: rotate(0deg);
|
|
199
|
+
}
|
|
200
|
+
.suite-container > input[type="checkbox"]:checked ~ label .suite-info:before {
|
|
201
|
+
transform: rotate(180deg);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/* CONSOLE LOGS */
|
|
205
|
+
.suite-consolelog {
|
|
206
|
+
margin-bottom: 0.25rem;
|
|
207
|
+
padding: 1rem;
|
|
208
|
+
background-color: #efefef;
|
|
209
|
+
}
|
|
210
|
+
.suite-consolelog-header {
|
|
211
|
+
font-weight: bold;
|
|
212
|
+
}
|
|
213
|
+
.suite-consolelog-item {
|
|
214
|
+
padding: 0.5rem;
|
|
215
|
+
}
|
|
216
|
+
.suite-consolelog-item pre {
|
|
217
|
+
margin: 0.5rem 0;
|
|
218
|
+
white-space: pre-wrap;
|
|
219
|
+
white-space: -moz-pre-wrap;
|
|
220
|
+
white-space: -pre-wrap;
|
|
221
|
+
white-space: -o-pre-wrap;
|
|
222
|
+
word-wrap: break-word;
|
|
223
|
+
}
|
|
224
|
+
.suite-consolelog-item-origin {
|
|
225
|
+
color: #777;
|
|
226
|
+
font-weight: bold;
|
|
227
|
+
}
|
|
228
|
+
.suite-consolelog-item-message {
|
|
229
|
+
color: #000;
|
|
230
|
+
font-size: 1rem;
|
|
231
|
+
padding: 0 0.5rem;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* OBSOLETE SNAPSHOTS */
|
|
235
|
+
.suite-obsolete-snapshots {
|
|
236
|
+
margin-bottom: 0.25rem;
|
|
237
|
+
padding: 1rem;
|
|
238
|
+
background-color: #ffbaba;
|
|
239
|
+
color: #d8000c;
|
|
240
|
+
}
|
|
241
|
+
.suite-obsolete-snapshots-header {
|
|
242
|
+
font-weight: bold;
|
|
243
|
+
}
|
|
244
|
+
.suite-obsolete-snapshots-item {
|
|
245
|
+
padding: 0.5rem;
|
|
246
|
+
}
|
|
247
|
+
.suite-obsolete-snapshots-item pre {
|
|
248
|
+
margin: 0.5rem 0;
|
|
249
|
+
white-space: pre-wrap;
|
|
250
|
+
white-space: -moz-pre-wrap;
|
|
251
|
+
white-space: -pre-wrap;
|
|
252
|
+
white-space: -o-pre-wrap;
|
|
253
|
+
word-wrap: break-word;
|
|
254
|
+
}
|
|
255
|
+
.suite-obsolete-snapshots-item-message {
|
|
256
|
+
color: #000;
|
|
257
|
+
font-size: 1rem;
|
|
258
|
+
padding: 0 0.5rem;
|
|
259
|
+
}
|
|
260
|
+
</style></head><body><div class="jesthtml-content"><header><h1 id="title">Unit Report</h1></header><div id="metadata-container"><div id="timestamp">Started: 2024-12-18 15:33:53</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (1)</div><div class="summary-passed ">1 passed</div><div class="summary-failed summary-empty">0 failed</div><div class="summary-pending summary-empty">0 pending</div></div><div id="test-summary"><div class="summary-total">Tests (9)</div><div class="summary-passed ">9 passed</div><div class="summary-failed summary-empty">0 failed</div><div class="summary-pending summary-empty">0 pending</div></div></div></div><div id="suite-1" class="suite-container"><input id="collapsible-0" type="checkbox" class="toggle" checked="checked"/><label for="collapsible-0"><div class="suite-info"><div class="suite-path">/Users/durai-19814/Documents/Git/testing-framework/src/test/core/playwright/__tests__/tagProcessor.test.js</div><div class="suite-time">1.168s</div></div></label><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should return tagArgs if no edition is provided</div><div class="test-status">passed</div><div class="test-duration">0.002s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should handle a single edition with <= operator</div><div class="test-status">passed</div><div class="test-duration">0s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should handle a single edition with >= operator</div><div class="test-status">passed</div><div class="test-duration">0s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should handle a single edition with < operator</div><div class="test-status">passed</div><div class="test-duration">0s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should handle a single edition with > operator</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should handle a single edition with no operator</div><div class="test-status">passed</div><div class="test-duration">0s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should log a message if edition is not found</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should handle multiple editions</div><div class="test-status">passed</div><div class="test-duration">0s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">TagProcessor</div><div class="test-title">should build tags correctly when tags are empty</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div></div></div></div></body></html>
|