@zohodesk/testinglibrary 0.4.7-experimental → 0.4.9-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 +16 -23
- package/README.md +9 -25
- package/build/bdd-framework/cli/commands/env.js +42 -0
- package/build/bdd-framework/cli/commands/export.js +62 -0
- package/build/bdd-framework/cli/commands/test.js +64 -0
- package/build/bdd-framework/cli/index.js +11 -0
- package/build/bdd-framework/cli/options.js +19 -0
- package/build/bdd-framework/cli/worker.js +13 -0
- package/build/bdd-framework/config/configDir.js +35 -0
- package/build/bdd-framework/config/enrichReporterData.js +23 -0
- package/build/bdd-framework/config/env.js +50 -0
- package/build/bdd-framework/config/index.js +94 -0
- package/build/bdd-framework/config/lang.js +14 -0
- package/build/bdd-framework/cucumber/buildStepDefinition.js +43 -0
- package/build/bdd-framework/cucumber/createTestStep.js +43 -0
- package/build/bdd-framework/cucumber/formatter/EventDataCollector.js +126 -0
- package/build/bdd-framework/cucumber/formatter/GherkinDocumentParser.js +72 -0
- package/build/bdd-framework/cucumber/formatter/PickleParser.js +25 -0
- package/build/bdd-framework/cucumber/formatter/durationHelpers.js +13 -0
- package/build/bdd-framework/cucumber/formatter/getColorFns.js +57 -0
- package/build/bdd-framework/cucumber/formatter/index.js +16 -0
- package/build/bdd-framework/cucumber/formatter/locationHelpers.js +16 -0
- package/build/bdd-framework/cucumber/loadConfig.js +17 -0
- package/build/bdd-framework/cucumber/loadFeatures.js +70 -0
- package/build/bdd-framework/cucumber/loadSnippetBuilder.js +20 -0
- package/build/bdd-framework/cucumber/loadSteps.js +47 -0
- package/build/bdd-framework/cucumber/resolveFeaturePaths.js +62 -0
- package/build/bdd-framework/cucumber/stepArguments.js +21 -0
- package/build/bdd-framework/cucumber/types.js +5 -0
- package/build/bdd-framework/cucumber/valueChecker.js +23 -0
- package/build/bdd-framework/decorators.js +18 -0
- package/build/bdd-framework/gen/fixtures.js +48 -0
- package/build/bdd-framework/gen/formatter.js +167 -0
- package/build/bdd-framework/gen/i18n.js +39 -0
- package/build/bdd-framework/gen/index.js +197 -0
- package/build/bdd-framework/gen/specialTags.js +70 -0
- package/build/bdd-framework/gen/testFile.js +470 -0
- package/build/bdd-framework/gen/testMeta.js +60 -0
- package/build/bdd-framework/gen/testNode.js +35 -0
- package/build/bdd-framework/gen/testPoms.js +133 -0
- package/build/bdd-framework/hooks/scenario.js +130 -0
- package/build/bdd-framework/hooks/worker.js +89 -0
- package/build/bdd-framework/index.js +52 -0
- package/build/bdd-framework/playwright/fixtureParameterNames.js +93 -0
- package/build/bdd-framework/playwright/getLocationInFile.js +79 -0
- package/build/bdd-framework/playwright/loadConfig.js +42 -0
- package/build/bdd-framework/playwright/loadUtils.js +33 -0
- package/build/bdd-framework/playwright/testTypeImpl.js +79 -0
- package/build/bdd-framework/playwright/transform.js +88 -0
- package/build/bdd-framework/playwright/types.js +12 -0
- package/build/bdd-framework/playwright/utils.js +56 -0
- package/build/bdd-framework/reporter/cucumber/base.js +52 -0
- package/build/bdd-framework/reporter/cucumber/custom.js +73 -0
- package/build/bdd-framework/reporter/cucumber/helper.js +12 -0
- package/build/bdd-framework/reporter/cucumber/html.js +40 -0
- package/build/bdd-framework/reporter/cucumber/index.js +74 -0
- package/build/bdd-framework/reporter/cucumber/json.js +312 -0
- package/build/bdd-framework/reporter/cucumber/junit.js +205 -0
- package/build/bdd-framework/reporter/cucumber/message.js +20 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/AttachmentMapper.js +82 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +197 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocument.js +43 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocumentClone.js +52 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocuments.js +105 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Hook.js +70 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Meta.js +45 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Pickles.js +27 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Projects.js +38 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCase.js +128 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRun.js +154 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +123 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +67 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +114 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +30 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwStepUtils.js +70 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/timing.js +35 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/types.js +5 -0
- package/build/bdd-framework/run/StepInvoker.js +69 -0
- package/build/bdd-framework/run/bddData/index.js +59 -0
- package/build/bdd-framework/run/bddData/types.js +5 -0
- package/build/bdd-framework/run/bddFixtures.js +192 -0
- package/build/bdd-framework/run/bddWorld.js +79 -0
- package/build/bdd-framework/run/bddWorldInternal.js +11 -0
- package/build/bdd-framework/snippets/index.js +132 -0
- package/build/bdd-framework/snippets/snippetSyntax.js +43 -0
- package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +26 -0
- package/build/bdd-framework/snippets/snippetSyntaxTs.js +18 -0
- package/build/bdd-framework/stepDefinitions/createBdd.js +66 -0
- package/build/bdd-framework/stepDefinitions/decorators/class.js +68 -0
- package/build/bdd-framework/stepDefinitions/decorators/steps.js +99 -0
- package/build/bdd-framework/stepDefinitions/defineStep.js +62 -0
- package/build/bdd-framework/stepDefinitions/stepConfig.js +24 -0
- package/build/bdd-framework/steps/createBdd.js +78 -0
- package/build/bdd-framework/steps/decorators/class.js +68 -0
- package/build/bdd-framework/steps/decorators/steps.js +98 -0
- package/build/bdd-framework/steps/defineStep.js +62 -0
- package/build/bdd-framework/steps/stepConfig.js +24 -0
- package/build/bdd-framework/utils/AutofillMap.js +20 -0
- package/build/bdd-framework/utils/exit.js +62 -0
- package/build/bdd-framework/utils/index.js +93 -0
- package/build/bdd-framework/utils/jsStringWrap.js +44 -0
- package/build/bdd-framework/utils/logger.js +30 -0
- package/build/bdd-framework/utils/stripAnsiEscapes.js +20 -0
- package/build/core/playwright/constants/fileMutexConfig.js +11 -0
- package/build/core/playwright/helpers/auth/checkAuthCookies.js +2 -8
- package/build/core/playwright/helpers/auth/getUsers.js +12 -25
- package/build/core/playwright/helpers/auth/loginSteps.js +28 -18
- package/build/core/playwright/helpers/checkAuthDirectory.js +17 -0
- package/build/core/playwright/helpers/fileMutex.js +58 -0
- package/build/core/playwright/index.js +23 -10
- package/build/core/playwright/setup/config-creator.js +3 -3
- package/build/core/playwright/setup/config-utils.js +25 -8
- 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/auth-setup-sample.js +66 -14
- package/build/setup-folder-structure/samples/authUsers-sample.json +9 -0
- package/build/setup-folder-structure/samples/env-config-sample.json +21 -0
- package/build/setup-folder-structure/setupProject.js +5 -18
- package/build/test/core/playwright/helpers/__tests__/fileMutex.test.js +94 -0
- package/build/test/core/playwright/helpers/__tests__/getUsers_ListOfActors.test.js +80 -0
- package/nobdd/src/App.js +7 -0
- package/nobdd/uat/conf/default/actors/index.js +1 -4
- package/nobdd/uat/conf/default/settings.json +1 -1
- package/nobdd/uat/conf/nobdd/uat.config.js +12 -4
- package/nobdd/uat/env-config.json +3 -3
- package/nobdd/uat/fixtures/setup.teardown.js +2 -1
- package/nobdd/uat/modules/nobdd/steps/VerifyNoBDD.feature.spec.js +3 -3
- package/nobdd/uat.config.js +9 -3
- package/npm-shrinkwrap.json +2175 -5825
- package/package.json +8 -7
- package/build/core/playwright/fixtures.js +0 -24
- package/build/setup-folder-structure/samples/actors-index.js +0 -3
- package/build/setup-folder-structure/samples/editions-index.js +0 -3
- package/build/setup-folder-structure/samples/free-sample.json +0 -25
- package/build/setup-folder-structure/samples/settings.json +0 -7
- package/nobdd/uat/conf/default/actors/beta/custom-module.json +0 -24
- package/nobdd/uat/conf/default/actors/beta/index.js +0 -6
- package/nobdd/uat/conf/default/actors/beta/parent-child.json +0 -24
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _fs = require("fs");
|
|
5
|
+
var _path = _interopRequireDefault(require("path"));
|
|
6
|
+
jest.mock('fs');
|
|
7
|
+
jest.mock('path');
|
|
8
|
+
jest.mock('../../../../../core/playwright/readConfigFile', () => ({
|
|
9
|
+
generateConfigFromFile: jest.fn(() => ({
|
|
10
|
+
uatDirectory: '/test/directory'
|
|
11
|
+
})),
|
|
12
|
+
getRunMode: jest.fn(() => 'dev')
|
|
13
|
+
}));
|
|
14
|
+
const {
|
|
15
|
+
getListOfActors
|
|
16
|
+
} = require('../../../../../core/playwright/helpers/auth/getUsers');
|
|
17
|
+
describe('getListOfActors', () => {
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
jest.clearAllMocks();
|
|
20
|
+
_path.default.join.mockImplementation((...args) => args.join('/'));
|
|
21
|
+
});
|
|
22
|
+
test('throws an error when config file cannot be loaded', () => {
|
|
23
|
+
_fs.existsSync.mockReturnValueOnce(true); // Main config file exists
|
|
24
|
+
|
|
25
|
+
jest.mock('/test/directory/conf/dev/actors/index.js', () => {
|
|
26
|
+
throw new Error('Loading error');
|
|
27
|
+
}, {
|
|
28
|
+
virtual: true
|
|
29
|
+
});
|
|
30
|
+
expect(() => getListOfActors()).toThrow('Error loading actor configuration from /test/directory/conf/dev/actors/index.js');
|
|
31
|
+
});
|
|
32
|
+
test('throws an error when beta feature config does not exist', () => {
|
|
33
|
+
_fs.existsSync.mockReturnValueOnce(true) // Main config file exists
|
|
34
|
+
.mockReturnValueOnce(false); // Beta feature config does not exist in either path
|
|
35
|
+
|
|
36
|
+
const betaFeature = 'nonExistentFeature';
|
|
37
|
+
expect(() => getListOfActors(betaFeature)).toThrow(`There is no beta feature configured with the name "${betaFeature}"`);
|
|
38
|
+
});
|
|
39
|
+
test('loads main configuration when betaFeature is not provided and main config file exists', () => {
|
|
40
|
+
_fs.existsSync.mockReturnValueOnce(true);
|
|
41
|
+
jest.doMock('/test/directory/conf/dev/actors/index.js', () => ({
|
|
42
|
+
actors: []
|
|
43
|
+
}), {
|
|
44
|
+
virtual: true
|
|
45
|
+
});
|
|
46
|
+
const result = getListOfActors();
|
|
47
|
+
expect(result).toEqual({
|
|
48
|
+
actors: []
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
test('falls back to default configuration if main config file does not exist', () => {
|
|
52
|
+
_fs.existsSync.mockReturnValueOnce(false).mockReturnValueOnce(true);
|
|
53
|
+
jest.doMock('/test/directory/conf/default/actors/index.js', () => ({
|
|
54
|
+
actors: []
|
|
55
|
+
}), {
|
|
56
|
+
virtual: true
|
|
57
|
+
});
|
|
58
|
+
const result = getListOfActors();
|
|
59
|
+
expect(result).toEqual({
|
|
60
|
+
actors: []
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
test('loads beta feature configuration when betaFeature is provided', () => {
|
|
64
|
+
_fs.existsSync.mockReturnValueOnce(true) // Main config file exists
|
|
65
|
+
.mockReturnValueOnce(true); // Beta feature config exists
|
|
66
|
+
|
|
67
|
+
const betaFeature = 'parentchild';
|
|
68
|
+
const betaFeaturePath = `/test/directory/conf/dev/actors/beta/${betaFeature}/index.js`;
|
|
69
|
+
jest.doMock(betaFeaturePath, () => ({
|
|
70
|
+
betaActors: []
|
|
71
|
+
}), {
|
|
72
|
+
virtual: true
|
|
73
|
+
});
|
|
74
|
+
const result = getListOfActors(betaFeature);
|
|
75
|
+
expect(result).toEqual({
|
|
76
|
+
betaActors: []
|
|
77
|
+
});
|
|
78
|
+
expect(_path.default.join).toHaveBeenCalledWith('/test/directory', `conf/dev/actors/beta/${betaFeature}/index.js`);
|
|
79
|
+
});
|
|
80
|
+
});
|
package/nobdd/src/App.js
ADDED
|
@@ -12,16 +12,24 @@ function getPrimaryCookiePath() {
|
|
|
12
12
|
* @typedef {import('@zohodesk/testinglibrary').UserConfig} UserConfig
|
|
13
13
|
*/
|
|
14
14
|
module.exports = {
|
|
15
|
-
headless:
|
|
15
|
+
headless: false,
|
|
16
|
+
retries:1,
|
|
16
17
|
openReportOn: 'never',
|
|
17
18
|
browsers: ['Chrome'],
|
|
18
|
-
isAuthMode:
|
|
19
|
+
isAuthMode: true,
|
|
19
20
|
authFilePath: getPrimaryCookiePath(),
|
|
20
|
-
trace:
|
|
21
|
-
video:
|
|
21
|
+
trace: 'retain-on-failure',
|
|
22
|
+
video: 'retain-on-failure',
|
|
23
|
+
retries:1,
|
|
22
24
|
bddMode: false,
|
|
25
|
+
expectTimeout: 10 * 1000,
|
|
26
|
+
testTimeout: 60 * 1000,
|
|
27
|
+
globalTimeout: 2 * 60 * 60 * 1000,
|
|
28
|
+
featureFilesFolder: 'feature-files',
|
|
29
|
+
stepDefinitionsFolder: 'steps',
|
|
23
30
|
viewport: { width: 1280, height: 720 },
|
|
24
31
|
testIdAttribute: 'data-id',
|
|
32
|
+
editionOrder: ['Free', 'Express', 'Standard', 'Professional', 'Enterprise'],
|
|
25
33
|
additionalPages: {
|
|
26
34
|
...customFixtures
|
|
27
35
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dev": {
|
|
3
|
-
"domain": "https://
|
|
3
|
+
"domain": "https://zdesk-devops16.csez.zohocorpin.com:31025/agent",
|
|
4
4
|
"orgName": "org-name",
|
|
5
5
|
"deptName": "dept-name",
|
|
6
6
|
"moduleName": "module-name"
|
|
7
7
|
},
|
|
8
8
|
"prod": {
|
|
9
|
-
"domain": "https://
|
|
9
|
+
"domain": "https://zdesk-devops16.csez.zohocorpin.com:31025/agent",
|
|
10
10
|
"orgName": "sangeetha.t@zohocorp.com",
|
|
11
11
|
"deptName": "sangeethat",
|
|
12
12
|
"moduleName": "sangeethat"
|
|
13
13
|
},
|
|
14
14
|
"ci": {
|
|
15
|
-
"domain": "https://zdesk-
|
|
15
|
+
"domain": "https://zdesk-devops16.csez.zohocorpin.com:31025/agent",
|
|
16
16
|
"orgName": "clientcicdk8",
|
|
17
17
|
"deptName": "clientcicdk8",
|
|
18
18
|
"moduleName": "tickets"
|
|
@@ -21,7 +21,8 @@ if (!isDevelopmentSetup()) {
|
|
|
21
21
|
const authFilePath = path.join(authDirectory, file);
|
|
22
22
|
await loadCookiesIfPresent(page, authFilePath);
|
|
23
23
|
const domainOrigin = getUrlOrigin(process.env.domain);
|
|
24
|
-
|
|
24
|
+
const logoutURL = `${domainOrigin}/support/logout.sas`;
|
|
25
|
+
await page.goto(logoutURL);
|
|
25
26
|
await page.waitForNavigation();
|
|
26
27
|
await expect(page.locator('[id="signin_flow"]')).toBeVisible();
|
|
27
28
|
await fs.rmSync(authFilePath);
|
|
@@ -4,11 +4,11 @@ test.describe("Verify no authentication required @nobdd", () => {
|
|
|
4
4
|
|
|
5
5
|
test("Verify the page is not logged in", async ({ page }) => {
|
|
6
6
|
|
|
7
|
-
await page.goto(
|
|
7
|
+
await page.goto(process.env.domain);
|
|
8
8
|
|
|
9
|
-
await page.waitForSelector('
|
|
9
|
+
await page.waitForSelector('#login');
|
|
10
10
|
|
|
11
|
-
const isLoggedIn = await page.isVisible('
|
|
11
|
+
const isLoggedIn = await page.isVisible('#login');
|
|
12
12
|
expect(isLoggedIn).toBe(true);
|
|
13
13
|
|
|
14
14
|
});
|
package/nobdd/uat.config.js
CHANGED
|
@@ -13,17 +13,23 @@ function getPrimaryCookiePath() {
|
|
|
13
13
|
*/
|
|
14
14
|
module.exports = {
|
|
15
15
|
headless: false,
|
|
16
|
+
retries:1,
|
|
16
17
|
openReportOn: 'never',
|
|
17
18
|
browsers: ['Chrome'],
|
|
18
19
|
isAuthMode: true,
|
|
19
20
|
authFilePath: getPrimaryCookiePath(),
|
|
20
|
-
trace:
|
|
21
|
-
video:
|
|
22
|
-
|
|
21
|
+
trace: 'retain-on-failure',
|
|
22
|
+
video: 'retain-on-failure',
|
|
23
|
+
retries:1,
|
|
24
|
+
bddMode: false,
|
|
25
|
+
expectTimeout: 10 * 1000,
|
|
26
|
+
testTimeout: 60 * 1000,
|
|
27
|
+
globalTimeout: 2 * 60 * 60 * 1000,
|
|
23
28
|
featureFilesFolder: 'feature-files',
|
|
24
29
|
stepDefinitionsFolder: 'steps',
|
|
25
30
|
viewport: { width: 1280, height: 720 },
|
|
26
31
|
testIdAttribute: 'data-id',
|
|
32
|
+
editionOrder: ['Free', 'Express', 'Standard', 'Professional', 'Enterprise'],
|
|
27
33
|
additionalPages: {
|
|
28
34
|
...customFixtures
|
|
29
35
|
}
|