@zohodesk/testinglibrary 0.4.14-experimental → 0.4.16-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 +2 -1
- package/README.md +32 -6
- package/build/core/playwright/fixtures.js +24 -0
- package/build/core/playwright/helpers/auth/checkAuthCookies.js +8 -2
- package/build/core/playwright/helpers/auth/loginSteps.js +18 -28
- package/build/core/playwright/index.js +10 -23
- package/build/core/playwright/setup/config-creator.js +6 -5
- package/build/core/playwright/setup/config-utils.js +8 -25
- package/build/core/playwright/tagProcessor.js +18 -28
- package/build/core/playwright/test-runner.js +1 -1
- package/build/decorators.d.ts +1 -1
- package/build/decorators.js +1 -1
- package/build/setup-folder-structure/samples/actors-index.js +2 -0
- package/build/setup-folder-structure/samples/auth-setup-sample.js +14 -66
- package/build/setup-folder-structure/samples/editions-index.js +3 -0
- package/build/setup-folder-structure/samples/free-sample.json +25 -0
- package/build/setup-folder-structure/samples/settings.json +7 -0
- package/build/setup-folder-structure/setupProject.js +18 -5
- package/nobdd/uat/conf/nobdd/uat.config.js +4 -11
- package/nobdd/uat.config.js +3 -8
- package/npm-shrinkwrap.json +7245 -3251
- package/package.json +9 -9
- package/build/bdd-framework/cli/commands/env.js +0 -42
- package/build/bdd-framework/cli/commands/export.js +0 -62
- package/build/bdd-framework/cli/commands/test.js +0 -64
- package/build/bdd-framework/cli/index.js +0 -11
- package/build/bdd-framework/cli/options.js +0 -19
- package/build/bdd-framework/cli/worker.js +0 -13
- package/build/bdd-framework/config/configDir.js +0 -35
- package/build/bdd-framework/config/enrichReporterData.js +0 -23
- package/build/bdd-framework/config/env.js +0 -50
- package/build/bdd-framework/config/index.js +0 -94
- package/build/bdd-framework/config/lang.js +0 -14
- package/build/bdd-framework/cucumber/buildStepDefinition.js +0 -43
- package/build/bdd-framework/cucumber/createTestStep.js +0 -43
- package/build/bdd-framework/cucumber/formatter/EventDataCollector.js +0 -126
- package/build/bdd-framework/cucumber/formatter/GherkinDocumentParser.js +0 -72
- package/build/bdd-framework/cucumber/formatter/PickleParser.js +0 -25
- package/build/bdd-framework/cucumber/formatter/durationHelpers.js +0 -13
- package/build/bdd-framework/cucumber/formatter/getColorFns.js +0 -57
- package/build/bdd-framework/cucumber/formatter/index.js +0 -16
- package/build/bdd-framework/cucumber/formatter/locationHelpers.js +0 -16
- package/build/bdd-framework/cucumber/loadConfig.js +0 -17
- package/build/bdd-framework/cucumber/loadFeatures.js +0 -70
- package/build/bdd-framework/cucumber/loadSnippetBuilder.js +0 -20
- package/build/bdd-framework/cucumber/loadSteps.js +0 -47
- package/build/bdd-framework/cucumber/resolveFeaturePaths.js +0 -62
- package/build/bdd-framework/cucumber/stepArguments.js +0 -21
- package/build/bdd-framework/cucumber/types.js +0 -5
- package/build/bdd-framework/cucumber/valueChecker.js +0 -23
- package/build/bdd-framework/decorators.js +0 -18
- package/build/bdd-framework/gen/fixtures.js +0 -48
- package/build/bdd-framework/gen/formatter.js +0 -167
- package/build/bdd-framework/gen/i18n.js +0 -39
- package/build/bdd-framework/gen/index.js +0 -197
- package/build/bdd-framework/gen/specialTags.js +0 -70
- package/build/bdd-framework/gen/testFile.js +0 -470
- package/build/bdd-framework/gen/testMeta.js +0 -60
- package/build/bdd-framework/gen/testNode.js +0 -35
- package/build/bdd-framework/gen/testPoms.js +0 -133
- package/build/bdd-framework/hooks/scenario.js +0 -130
- package/build/bdd-framework/hooks/worker.js +0 -89
- package/build/bdd-framework/index.js +0 -52
- package/build/bdd-framework/playwright/fixtureParameterNames.js +0 -93
- package/build/bdd-framework/playwright/getLocationInFile.js +0 -79
- package/build/bdd-framework/playwright/loadConfig.js +0 -42
- package/build/bdd-framework/playwright/loadUtils.js +0 -33
- package/build/bdd-framework/playwright/testTypeImpl.js +0 -79
- package/build/bdd-framework/playwright/transform.js +0 -88
- package/build/bdd-framework/playwright/types.js +0 -12
- package/build/bdd-framework/playwright/utils.js +0 -56
- package/build/bdd-framework/reporter/cucumber/base.js +0 -52
- package/build/bdd-framework/reporter/cucumber/custom.js +0 -73
- package/build/bdd-framework/reporter/cucumber/helper.js +0 -12
- package/build/bdd-framework/reporter/cucumber/html.js +0 -40
- package/build/bdd-framework/reporter/cucumber/index.js +0 -74
- package/build/bdd-framework/reporter/cucumber/json.js +0 -312
- package/build/bdd-framework/reporter/cucumber/junit.js +0 -205
- package/build/bdd-framework/reporter/cucumber/message.js +0 -20
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/AttachmentMapper.js +0 -82
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +0 -197
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocument.js +0 -43
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocumentClone.js +0 -52
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocuments.js +0 -105
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Hook.js +0 -70
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Meta.js +0 -45
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Pickles.js +0 -27
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Projects.js +0 -38
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCase.js +0 -128
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRun.js +0 -154
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +0 -123
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +0 -67
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +0 -114
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +0 -30
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwStepUtils.js +0 -70
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/timing.js +0 -35
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/types.js +0 -5
- package/build/bdd-framework/run/StepInvoker.js +0 -69
- package/build/bdd-framework/run/bddData/index.js +0 -59
- package/build/bdd-framework/run/bddData/types.js +0 -5
- package/build/bdd-framework/run/bddFixtures.js +0 -192
- package/build/bdd-framework/run/bddWorld.js +0 -79
- package/build/bdd-framework/run/bddWorldInternal.js +0 -11
- package/build/bdd-framework/snippets/index.js +0 -132
- package/build/bdd-framework/snippets/snippetSyntax.js +0 -43
- package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +0 -26
- package/build/bdd-framework/snippets/snippetSyntaxTs.js +0 -18
- package/build/bdd-framework/stepDefinitions/createBdd.js +0 -66
- package/build/bdd-framework/stepDefinitions/decorators/class.js +0 -68
- package/build/bdd-framework/stepDefinitions/decorators/steps.js +0 -99
- package/build/bdd-framework/stepDefinitions/defineStep.js +0 -62
- package/build/bdd-framework/stepDefinitions/stepConfig.js +0 -24
- package/build/bdd-framework/steps/createBdd.js +0 -78
- package/build/bdd-framework/steps/decorators/class.js +0 -68
- package/build/bdd-framework/steps/decorators/steps.js +0 -98
- package/build/bdd-framework/steps/defineStep.js +0 -62
- package/build/bdd-framework/steps/stepConfig.js +0 -24
- package/build/bdd-framework/utils/AutofillMap.js +0 -20
- package/build/bdd-framework/utils/exit.js +0 -62
- package/build/bdd-framework/utils/index.js +0 -93
- package/build/bdd-framework/utils/jsStringWrap.js +0 -44
- package/build/bdd-framework/utils/logger.js +0 -30
- package/build/bdd-framework/utils/stripAnsiEscapes.js +0 -20
- package/build/core/playwright/constants/fileMutexConfig.js +0 -15
- package/build/core/playwright/helpers/checkAuthDirectory.js +0 -17
- package/build/core/playwright/helpers/fileMutex.js +0 -56
- package/build/setup-folder-structure/samples/authUsers-sample.json +0 -9
- package/build/setup-folder-structure/samples/env-config-sample.json +0 -21
- package/build/test/core/playwright/helpers/__tests__/fileMutex.test.js +0 -94
- package/nobdd/src/App.js +0 -7
|
@@ -1,56 +0,0 @@
|
|
|
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 _properLockfile = _interopRequireDefault(require("proper-lockfile"));
|
|
10
|
-
var _fs = require("fs");
|
|
11
|
-
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
12
|
-
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
13
|
-
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
|
14
|
-
var _getLockFilePath = /*#__PURE__*/new WeakSet();
|
|
15
|
-
var _createDirectoryIfNotExist = /*#__PURE__*/new WeakSet();
|
|
16
|
-
class FileMutex {
|
|
17
|
-
constructor(directory, lockFileName, options = {}) {
|
|
18
|
-
_classPrivateMethodInitSpec(this, _createDirectoryIfNotExist);
|
|
19
|
-
_classPrivateMethodInitSpec(this, _getLockFilePath);
|
|
20
|
-
this.directory = directory;
|
|
21
|
-
this.lockFileName = lockFileName + ".lock";
|
|
22
|
-
this.options = options;
|
|
23
|
-
}
|
|
24
|
-
async acquire() {
|
|
25
|
-
_classPrivateMethodGet(this, _createDirectoryIfNotExist, _createDirectoryIfNotExist2).call(this);
|
|
26
|
-
const lockFilePath = _path.default.resolve(this.directory, this.lockFileName);
|
|
27
|
-
try {
|
|
28
|
-
if (!(0, _fs.existsSync)(lockFilePath)) {
|
|
29
|
-
console.warn(`[DEBUG] Recreating missing lock file:`, this.lockFileName);
|
|
30
|
-
(0, _fs.writeFileSync)(lockFilePath, 'locked');
|
|
31
|
-
}
|
|
32
|
-
await _properLockfile.default.lock(_classPrivateMethodGet(this, _getLockFilePath, _getLockFilePath2).call(this), this.options);
|
|
33
|
-
} catch (err) {
|
|
34
|
-
throw new Error(`Failed to acquire lock after ${this.options.retries.retries} attempts: ${err.message}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
async release() {
|
|
38
|
-
try {
|
|
39
|
-
await _properLockfile.default.unlock(_classPrivateMethodGet(this, _getLockFilePath, _getLockFilePath2).call(this));
|
|
40
|
-
//unlinkSync(this.#getLockFilePath());
|
|
41
|
-
} catch (err) {
|
|
42
|
-
throw new Error(`Failed to release lock: ${err.message}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function _getLockFilePath2() {
|
|
47
|
-
return _path.default.resolve(_path.default.join(this.directory, this.lockFileName));
|
|
48
|
-
}
|
|
49
|
-
function _createDirectoryIfNotExist2() {
|
|
50
|
-
if (!(0, _fs.existsSync)(this.directory)) {
|
|
51
|
-
(0, _fs.mkdirSync)(this.directory, {
|
|
52
|
-
recursive: true
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
var _default = exports.default = FileMutex;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"dev": {
|
|
3
|
-
"domain": "https://desk.localzoho.com/agent",
|
|
4
|
-
"orgName": "org-name",
|
|
5
|
-
"deptName": "dept-name",
|
|
6
|
-
"moduleName": "module-name",
|
|
7
|
-
"devURL": "Provide your devURL here"
|
|
8
|
-
},
|
|
9
|
-
"prod": {
|
|
10
|
-
"domain": "https://desk.localzoho.com/agent",
|
|
11
|
-
"orgName": "org-name",
|
|
12
|
-
"deptName": "dept-name",
|
|
13
|
-
"moduleName": "module-name"
|
|
14
|
-
},
|
|
15
|
-
"k8test": {
|
|
16
|
-
"domain": "https://desk.localzoho.com/agent",
|
|
17
|
-
"orgName": "org-name",
|
|
18
|
-
"deptName": "dept-name",
|
|
19
|
-
"moduleName": "module-name"
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _fileMutex = _interopRequireDefault(require("../../../../../core/playwright/helpers/fileMutex"));
|
|
5
|
-
var _lockfile = _interopRequireDefault(require("lockfile"));
|
|
6
|
-
var _path = _interopRequireDefault(require("path"));
|
|
7
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
-
jest.mock('lockfile');
|
|
9
|
-
jest.mock('fs');
|
|
10
|
-
describe('FileMutex', () => {
|
|
11
|
-
const mockDirectory = '/tmp';
|
|
12
|
-
const mockFileName = 'test_user';
|
|
13
|
-
const mockTimeout = {
|
|
14
|
-
wait: 5000,
|
|
15
|
-
retries: 5,
|
|
16
|
-
stale: 60000
|
|
17
|
-
};
|
|
18
|
-
let fileMutex;
|
|
19
|
-
beforeEach(() => {
|
|
20
|
-
fileMutex = new _fileMutex.default(mockDirectory, mockFileName, mockTimeout);
|
|
21
|
-
});
|
|
22
|
-
afterEach(() => {
|
|
23
|
-
jest.clearAllMocks();
|
|
24
|
-
});
|
|
25
|
-
describe('acquire', () => {
|
|
26
|
-
it('should resolve when lockfile.lock succeeds and call getLockFilePath correctly', async () => {
|
|
27
|
-
const expectedPath = _path.default.resolve(_path.default.join(mockDirectory, `./${mockFileName}.lock`));
|
|
28
|
-
_lockfile.default.lock.mockImplementation((lockPath, options, callback) => {
|
|
29
|
-
expect(lockPath).toBe(expectedPath);
|
|
30
|
-
expect(options).toEqual(mockTimeout);
|
|
31
|
-
callback(null);
|
|
32
|
-
});
|
|
33
|
-
await expect(fileMutex.acquire()).resolves.toBeUndefined();
|
|
34
|
-
expect(_lockfile.default.lock).toHaveBeenCalledWith(expectedPath, mockTimeout, expect.any(Function));
|
|
35
|
-
});
|
|
36
|
-
it('should reject when lockfile.lock fails', async () => {
|
|
37
|
-
const mockError = new Error('Lock failed');
|
|
38
|
-
_lockfile.default.lock.mockImplementation((lockPath, options, callback) => {
|
|
39
|
-
expect(lockPath).toBe(_path.default.resolve(_path.default.join(mockDirectory, `./${mockFileName}.lock`)));
|
|
40
|
-
expect(options).toEqual(mockTimeout);
|
|
41
|
-
callback(mockError);
|
|
42
|
-
});
|
|
43
|
-
await expect(fileMutex.acquire()).rejects.toThrow('Lock failed');
|
|
44
|
-
expect(_lockfile.default.lock).toHaveBeenCalled();
|
|
45
|
-
});
|
|
46
|
-
it('should create the directory if it does not exist and acquire the lock', async () => {
|
|
47
|
-
_fs.default.existsSync.mockReturnValue(false);
|
|
48
|
-
_fs.default.mkdirSync.mockImplementation((dir, options) => {
|
|
49
|
-
expect(dir).toBe(mockDirectory);
|
|
50
|
-
expect(options).toEqual({
|
|
51
|
-
recursive: true
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
_lockfile.default.lock.mockImplementation((lockPath, options, callback) => {
|
|
55
|
-
expect(lockPath).toBe(_path.default.resolve(_path.default.join(mockDirectory, `./${mockFileName}.lock`)));
|
|
56
|
-
expect(options).toEqual(mockTimeout);
|
|
57
|
-
callback(null);
|
|
58
|
-
});
|
|
59
|
-
await expect(fileMutex.acquire()).resolves.toBeUndefined();
|
|
60
|
-
expect(_fs.default.existsSync).toHaveBeenCalledWith(mockDirectory);
|
|
61
|
-
expect(_fs.default.mkdirSync).toHaveBeenCalledWith(mockDirectory, {
|
|
62
|
-
recursive: true
|
|
63
|
-
});
|
|
64
|
-
expect(_lockfile.default.lock).toHaveBeenCalled();
|
|
65
|
-
});
|
|
66
|
-
it('should not create the directory if it already exists', async () => {
|
|
67
|
-
_fs.default.existsSync.mockReturnValue(true);
|
|
68
|
-
_lockfile.default.lock.mockImplementation((lockPath, options, callback) => {
|
|
69
|
-
callback(null);
|
|
70
|
-
});
|
|
71
|
-
await expect(fileMutex.acquire()).resolves.toBeUndefined();
|
|
72
|
-
expect(_fs.default.mkdirSync).not.toHaveBeenCalled();
|
|
73
|
-
expect(_lockfile.default.lock).toHaveBeenCalled();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
describe('release', () => {
|
|
77
|
-
it('should resolve when lockfile.unlock succeeds and call getLockFilePath correctly', async () => {
|
|
78
|
-
const expectedPath = _path.default.resolve(_path.default.join(mockDirectory, `./${mockFileName}.lock`));
|
|
79
|
-
_lockfile.default.unlock.mockImplementation((path, callback) => {
|
|
80
|
-
callback(null);
|
|
81
|
-
});
|
|
82
|
-
await expect(fileMutex.release()).resolves.toBeUndefined();
|
|
83
|
-
expect(_lockfile.default.unlock).toHaveBeenCalledWith(expectedPath, expect.any(Function));
|
|
84
|
-
});
|
|
85
|
-
it('should reject when lockfile.unlock fails', async () => {
|
|
86
|
-
const mockError = new Error('Unlock failed');
|
|
87
|
-
_lockfile.default.unlock.mockImplementation((path, callback) => {
|
|
88
|
-
callback(mockError);
|
|
89
|
-
});
|
|
90
|
-
await expect(fileMutex.release()).rejects.toThrow('Unlock failed');
|
|
91
|
-
expect(_lockfile.default.unlock).toHaveBeenCalled();
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
});
|