@zohodesk/testinglibrary 0.1.9-exp-actors → 0.1.12-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/.babelrc +4 -2
- package/.claude/settings.local.json +14 -0
- package/.gitlab-ci.yml +206 -0
- package/README.md +264 -1
- package/build/common/data-generator/steps/DataGenerator.spec.js +19 -0
- package/build/common/data-generator/steps/DataGeneratorStepsHelper.js +21 -0
- package/build/common/multi-actor/steps/multiActorHandling.spec.js +26 -0
- package/build/common/searchFake/helpers/rpcRequestHelper.js +52 -0
- package/build/common/searchFake/steps/searchFake.spec.js +85 -0
- package/build/core/dataGenerator/DataGenerator.js +161 -0
- package/build/core/dataGenerator/DataGeneratorError.js +60 -0
- package/build/core/dataGenerator/DataGeneratorHelper.js +121 -0
- package/build/core/dataGenerator/authenticator/Authenticator.js +37 -0
- package/build/core/dataGenerator/authenticator/CookieAuthenticator.js +48 -0
- package/build/core/dataGenerator/authenticator/JWTauthenticator.js +59 -0
- package/build/core/dataGenerator/authenticator/OAuthAuthenticator.js +26 -0
- package/build/core/dataGenerator/authenticator/OrgOAuthAuthenticator.js +26 -0
- package/build/core/dataGenerator/authenticator/cookieAuthConfig.js +11 -0
- package/build/core/jest/preprocessor/jsPreprocessor.js +2 -7
- package/build/core/jest/setup/index.js +1 -7
- package/build/core/playwright/builtInFixtures/actorContext.js +78 -0
- package/build/core/playwright/builtInFixtures/caseTimeout.js +20 -0
- package/build/core/playwright/builtInFixtures/context.js +34 -16
- package/build/core/playwright/builtInFixtures/executionContext.js +17 -0
- package/build/core/playwright/builtInFixtures/i18N.js +8 -0
- package/build/core/playwright/builtInFixtures/index.js +7 -1
- package/build/core/playwright/builtInFixtures/page.js +22 -84
- package/build/core/playwright/clear-caches.js +17 -5
- package/build/core/playwright/codegen.js +4 -21
- package/build/core/playwright/configuration/Configuration.js +25 -0
- package/build/core/playwright/configuration/ConfigurationHelper.js +45 -0
- package/build/core/playwright/configuration/UserArgs.js +12 -0
- package/build/core/playwright/constants/configConstants.js +17 -0
- package/build/core/playwright/constants/failureTagConstants.js +17 -0
- package/build/core/playwright/constants/fileMutexConfig.js +9 -0
- package/build/core/playwright/constants/reporterConstants.js +20 -0
- package/build/core/playwright/constants/retryConstants.js +8 -0
- package/build/core/playwright/custom-commands.js +1 -1
- package/build/core/playwright/env-initializer.js +26 -7
- package/build/core/playwright/fixtures.js +24 -0
- package/build/core/playwright/helpers/additionalProfiles.js +25 -0
- package/build/core/playwright/helpers/auth/accountLogin.js +4 -1
- package/build/core/playwright/helpers/auth/checkAuthCookies.js +20 -19
- package/build/core/playwright/helpers/auth/getUsers.js +57 -49
- package/build/core/playwright/helpers/auth/index.js +14 -1
- package/build/core/playwright/helpers/auth/loginDefaultStepsHelper.js +62 -0
- package/build/core/playwright/helpers/auth/loginSteps.js +40 -22
- package/build/core/playwright/helpers/browserTimeoutFactor.js +16 -0
- package/build/core/playwright/helpers/caseTimeoutResolver.js +37 -0
- package/build/core/playwright/helpers/checkAuthDirectory.js +27 -0
- package/build/core/playwright/helpers/configFileNameProvider.js +21 -7
- package/build/core/playwright/helpers/configPathResolver.js +38 -0
- package/build/core/playwright/helpers/contextFailureHandler.js +81 -0
- package/build/core/playwright/helpers/customFixturesHelper.js +58 -0
- package/build/core/playwright/helpers/failureTagClassifier.js +197 -0
- package/build/core/playwright/helpers/fileMutex.js +71 -0
- package/build/core/playwright/helpers/logCollector.js +147 -0
- package/build/core/playwright/helpers/parseUserArgs.js +2 -3
- package/build/core/playwright/helpers/runtimeLogAnnotator.js +140 -0
- package/build/core/playwright/helpers/runtimeLogPath.js +61 -0
- package/build/core/playwright/helpers/runtimeLogReader.js +54 -0
- package/build/core/playwright/helpers/thirdPartyLib.js +13 -0
- package/build/core/playwright/index.js +8 -88
- package/build/core/playwright/patterns/casePatterns.js +9 -0
- package/build/core/playwright/patterns/codePatterns.js +9 -0
- package/build/core/playwright/patterns/environmentPatterns.js +15 -0
- package/build/core/playwright/patterns/index.js +33 -0
- package/build/core/playwright/patterns/logCollectorIgnorePatterns.js +15 -0
- package/build/core/playwright/patterns/toolPatterns.js +26 -0
- package/build/core/playwright/readConfigFile.js +49 -16
- package/build/core/playwright/reporter/PlaywrightReporter.js +58 -0
- package/build/core/playwright/reporter/Reporter.js +65 -0
- package/build/core/playwright/reporter/ShardReporter.js +58 -0
- package/build/core/playwright/reporter/UnitReporter.js +27 -0
- package/build/core/playwright/reporter/helpers/mergeAbortedTests.js +78 -0
- package/build/core/playwright/runner/Runner.js +22 -0
- package/build/core/playwright/runner/RunnerHelper.js +43 -0
- package/build/core/playwright/runner/RunnerTypes.js +17 -0
- package/build/core/playwright/runner/SpawnRunner.js +93 -0
- package/build/core/playwright/setup/Project.js +35 -0
- package/build/core/playwright/setup/ProjectConfiguration.js +66 -0
- package/build/core/playwright/setup/config-creator.js +58 -40
- package/build/core/playwright/setup/config-utils.js +68 -37
- package/build/core/playwright/setup/custom-reporter.js +137 -14
- package/build/core/playwright/setup/merge-config.js +32 -0
- package/build/core/playwright/setup/qc-custom-reporter.js +342 -0
- package/build/core/playwright/spawnInheritChild.js +71 -0
- package/build/core/playwright/tagProcessor.js +69 -0
- package/build/core/playwright/test-runner.js +44 -97
- package/build/core/playwright/types.js +4 -1
- package/build/core/playwright/validateFeature.js +28 -0
- package/build/decorators.d.ts +1 -1
- package/build/decorators.js +1 -1
- package/build/index.d.ts +2 -22
- package/build/index.js +12 -2
- package/build/lib/cli.js +42 -7
- package/build/setup-folder-structure/helper.js +2 -0
- package/build/setup-folder-structure/samples/accountLogin-sample.js +19 -0
- package/build/setup-folder-structure/samples/actors-index.js +2 -0
- package/build/setup-folder-structure/samples/auth-setup-sample.js +10 -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/samples/testSetup-sample.js +14 -0
- package/build/setup-folder-structure/samples/uat-config-sample.js +7 -2
- package/build/setup-folder-structure/setupProject.js +23 -5
- package/build/test/core/dataGenerator/__tests__/DataGenerator.test.js +311 -0
- package/build/test/core/dataGenerator/__tests__/DataGeneratorHelper.test.js +204 -0
- package/build/test/core/dataGenerator/__tests__/DataGeneratorResolution.test.js +126 -0
- package/build/test/core/dataGenerator/authenticator/__tests__/Authenticator.test.js +88 -0
- package/build/test/core/dataGenerator/authenticator/__tests__/JWTauthenticator.test.js +136 -0
- package/build/test/core/dataGenerator/authenticator/__tests__/OAuthAuthenticator.test.js +39 -0
- package/build/test/core/dataGenerator/authenticator/__tests__/OrgOAuthAuthenticator.test.js +39 -0
- package/build/test/core/playwright/__tests__/spawnInheritChild.test.js +148 -0
- package/build/test/core/playwright/__tests__/tagProcessor.test.js +94 -0
- package/build/test/core/playwright/__tests__/validateFeature.test.js +72 -0
- package/build/test/core/playwright/buildInFixtures/__tests__/caseTimeout.test.js +96 -0
- package/build/test/core/playwright/buildInFixtures/__tests__/executionContext.test.js +27 -0
- package/build/test/core/playwright/configuration/__tests__/Configuration.test.js +53 -0
- package/build/test/core/playwright/helpers/__tests__/additionalProfiles.test.js +45 -0
- package/build/test/core/playwright/helpers/__tests__/configFileNameProvider.test.js +75 -0
- package/build/test/core/playwright/helpers/__tests__/configPathResolver.test.js +55 -0
- package/build/test/core/playwright/helpers/__tests__/customFixturesHelper.test.js +51 -0
- package/build/test/core/playwright/helpers/__tests__/failureTagClassifier.test.js +604 -0
- package/build/test/core/playwright/helpers/__tests__/fileMutex.test.js +79 -0
- package/build/test/core/playwright/helpers/__tests__/getUsers_ListOfActors.test.js +83 -0
- package/build/test/core/playwright/helpers/__tests__/logCollector.test.js +163 -0
- package/build/test/core/playwright/helpers/__tests__/runtimeLogReader.test.js +112 -0
- package/build/test/core/playwright/helpers/auth/__tests__/checkAuthCookies.test.js +92 -0
- package/build/test/core/playwright/runner/__tests__/RunnerHelper.test.js +19 -0
- package/build/test/core/playwright/runner/__tests__/SpawnRunner.test.js +30 -0
- package/build/utils/cliArgsToObject.js +3 -0
- package/build/utils/commonUtils.js +20 -0
- package/build/utils/fileUtils.js +43 -1
- package/build/utils/logger.js +1 -30
- package/changelog.md +23 -0
- package/docs/CODE-REVIEW-AGENT.md +399 -0
- package/docs/code-review-instructions.md +157 -0
- package/jest.config.js +29 -11
- package/npm-shrinkwrap.json +14994 -4793
- package/package.json +39 -28
- package/playwright.config.js +13 -57
- package/unit_reports/unit-report.html +277 -0
- package/build/bdd-framework/cli/commands/env.js +0 -42
- package/build/bdd-framework/cli/commands/export.js +0 -47
- 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 -123
- package/build/bdd-framework/gen/i18n.js +0 -39
- package/build/bdd-framework/gen/index.js +0 -185
- package/build/bdd-framework/gen/testFile.js +0 -465
- package/build/bdd-framework/gen/testMeta.js +0 -60
- package/build/bdd-framework/gen/testNode.js +0 -60
- 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 -61
- package/build/bdd-framework/playwright/transform.js +0 -88
- package/build/bdd-framework/playwright/types.js +0 -5
- package/build/bdd-framework/playwright/utils.js +0 -34
- package/build/bdd-framework/reporter/cucumber/base.js +0 -57
- 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 -35
- 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 -64
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +0 -196
- 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 -126
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +0 -102
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +0 -50
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +0 -88
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +0 -30
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwUtils.js +0 -51
- 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 -68
- package/build/bdd-framework/run/bddDataAttachment.js +0 -46
- package/build/bdd-framework/run/bddFixtures.js +0 -191
- package/build/bdd-framework/run/bddWorld.js +0 -79
- package/build/bdd-framework/run/bddWorldInternal.js +0 -15
- 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/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/report-generator.js +0 -42
- package/build/core/playwright/tag-processor.js +0 -68
- package/build/setup-folder-structure/samples/authUsers-sample.json +0 -9
- package/build/setup-folder-structure/samples/env-config-sample.json +0 -21
|
@@ -0,0 +1,28 @@
|
|
|
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 _parseUserArgs = _interopRequireDefault(require("./helpers/parseUserArgs"));
|
|
9
|
+
var _readConfigFile = require("./readConfigFile");
|
|
10
|
+
var _tagProcessor = _interopRequireDefault(require("./tagProcessor"));
|
|
11
|
+
var _testRunner = require("./test-runner");
|
|
12
|
+
var _logger = require("../../utils/logger");
|
|
13
|
+
const validateFeatureFiles = () => {
|
|
14
|
+
const userArgsObject = (0, _parseUserArgs.default)();
|
|
15
|
+
const uatConfig = (0, _readConfigFile.generateConfigFromFile)();
|
|
16
|
+
const {
|
|
17
|
+
editionOrder
|
|
18
|
+
} = uatConfig;
|
|
19
|
+
const configPath = (0, _readConfigFile.isUserConfigFileAvailable)() ? require.resolve('./setup/config-creator.js') : require.resolve('../../../playwright.config.js');
|
|
20
|
+
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
21
|
+
const tagArgs = tagProcessor.processTags(userArgsObject);
|
|
22
|
+
(0, _testRunner.runPreprocessing)(tagArgs, configPath).then(() => {
|
|
23
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Feature files validated successfully.');
|
|
24
|
+
}).catch(error => {
|
|
25
|
+
_logger.Logger.log(_logger.Logger.FAILURE_TYPE, `Error while validating the feature files - ${error}`);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var _default = exports.default = validateFeatureFiles;
|
package/build/decorators.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from 'playwright-bdd/decorators';
|
package/build/decorators.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
var _decorators = require("
|
|
6
|
+
var _decorators = require("playwright-bdd/decorators");
|
|
7
7
|
Object.keys(_decorators).forEach(function (key) {
|
|
8
8
|
if (key === "default" || key === "__esModule") return;
|
|
9
9
|
if (key in exports && exports[key] === _decorators[key]) return;
|
package/build/index.d.ts
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
expect,
|
|
3
3
|
test,
|
|
4
|
-
|
|
5
|
-
getRunMode,
|
|
6
|
-
isCI,
|
|
7
|
-
isDevelopmentSetup,
|
|
8
|
-
getListOfActors,
|
|
9
|
-
getDefaultActor,
|
|
10
|
-
getUserForSelectedEditionAndProfile,
|
|
11
|
-
loadCookiesIfPresent,
|
|
12
|
-
performLoginSteps,
|
|
13
|
-
verifyIfCookieFileExists
|
|
4
|
+
createBdd
|
|
14
5
|
} from './core/playwright/index';
|
|
15
|
-
import { fireEvent, render } from '@testing-library/react';
|
|
16
6
|
import {
|
|
17
7
|
PlaywrightTestArgs,
|
|
18
8
|
PlaywrightTestOptions,
|
|
@@ -81,17 +71,7 @@ export {
|
|
|
81
71
|
expect,
|
|
82
72
|
test,
|
|
83
73
|
createBdd,
|
|
84
|
-
Page
|
|
85
|
-
accountLogin,
|
|
86
|
-
getRunMode,
|
|
87
|
-
isCI,
|
|
88
|
-
isDevelopmentSetup,
|
|
89
|
-
getListOfActors,
|
|
90
|
-
getDefaultActor,
|
|
91
|
-
getUserForSelectedEditionAndProfile,
|
|
92
|
-
loadCookiesIfPresent,
|
|
93
|
-
performLoginSteps,
|
|
94
|
-
verifyIfCookieFileExists
|
|
74
|
+
Page
|
|
95
75
|
};
|
|
96
76
|
|
|
97
77
|
export * from '@playwright/test/types/test';
|
package/build/index.js
CHANGED
|
@@ -40,6 +40,12 @@ Object.defineProperty(exports, "getRunMode", {
|
|
|
40
40
|
return _index.getRunMode;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
Object.defineProperty(exports, "getRunStage", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _index.getRunStage;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
43
49
|
Object.defineProperty(exports, "getUserForSelectedEditionAndProfile", {
|
|
44
50
|
enumerable: true,
|
|
45
51
|
get: function () {
|
|
@@ -70,6 +76,12 @@ Object.defineProperty(exports, "performLoginSteps", {
|
|
|
70
76
|
return _index.performLoginSteps;
|
|
71
77
|
}
|
|
72
78
|
});
|
|
79
|
+
Object.defineProperty(exports, "setup", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: function () {
|
|
82
|
+
return _index.setup;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
73
85
|
Object.defineProperty(exports, "test", {
|
|
74
86
|
enumerable: true,
|
|
75
87
|
get: function () {
|
|
@@ -83,8 +95,6 @@ Object.defineProperty(exports, "verifyIfCookieFileExists", {
|
|
|
83
95
|
}
|
|
84
96
|
});
|
|
85
97
|
var _index = require("./core/playwright/index");
|
|
86
|
-
// import { fireEvent, render } from '@testing-library/react';
|
|
87
|
-
|
|
88
98
|
const {
|
|
89
99
|
Given,
|
|
90
100
|
Then,
|
package/build/lib/cli.js
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
var _testRunner = _interopRequireDefault(require("../core/playwright/test-runner"));
|
|
5
|
-
var
|
|
5
|
+
var _unitTestingFramework = require("@zohodesk/unit-testing-framework");
|
|
6
|
+
var _PlaywrightReporter = _interopRequireDefault(require("../core/playwright/reporter/PlaywrightReporter"));
|
|
7
|
+
var _ShardReporter = _interopRequireDefault(require("../core/playwright/reporter/ShardReporter"));
|
|
8
|
+
var _UnitReporter = _interopRequireDefault(require("../core/playwright/reporter/UnitReporter"));
|
|
6
9
|
var _codegen = _interopRequireDefault(require("../core/playwright/codegen"));
|
|
7
10
|
var _logger = require("../utils/logger");
|
|
8
11
|
var _setupProject = _interopRequireDefault(require("../setup-folder-structure/setupProject"));
|
|
@@ -10,15 +13,30 @@ var _parser = require("../parser/parser");
|
|
|
10
13
|
var _clearCaches = _interopRequireDefault(require("../core/playwright/clear-caches"));
|
|
11
14
|
var _helper = _interopRequireDefault(require("../setup-folder-structure/helper"));
|
|
12
15
|
var _parseUserArgs = _interopRequireDefault(require("../core/playwright/helpers/parseUserArgs"));
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
var _validateFeature = _interopRequireDefault(require("../core/playwright/validateFeature"));
|
|
17
|
+
var _commonUtils = require("../utils/commonUtils");
|
|
15
18
|
const [,, option, ...otherOptions] = process.argv;
|
|
16
19
|
switch (option) {
|
|
17
20
|
case 'test':
|
|
18
21
|
{
|
|
19
22
|
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Running Tests..');
|
|
20
23
|
(0, _testRunner.default)();
|
|
21
|
-
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
case 'unit-test':
|
|
27
|
+
{
|
|
28
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Running Unit Tests..');
|
|
29
|
+
(0, _unitTestingFramework.parseUnitTestArgs)(otherOptions).then(options => {
|
|
30
|
+
if (options.testPathPattern) {
|
|
31
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, `Filtering tests with pattern: ${options.testPathPattern}`);
|
|
32
|
+
}
|
|
33
|
+
return (0, _unitTestingFramework.createJestRunner)(options);
|
|
34
|
+
});
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case 'validate':
|
|
38
|
+
{
|
|
39
|
+
(0, _validateFeature.default)();
|
|
22
40
|
break;
|
|
23
41
|
}
|
|
24
42
|
case 're-run-failed':
|
|
@@ -34,9 +52,20 @@ switch (option) {
|
|
|
34
52
|
}
|
|
35
53
|
case 'report':
|
|
36
54
|
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
55
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Generating UAT Reports...');
|
|
56
|
+
_PlaywrightReporter.default.generate();
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case 'merge-reports':
|
|
60
|
+
{
|
|
61
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Merging Shard Reports...');
|
|
62
|
+
_ShardReporter.default.merge();
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case 'ut-report':
|
|
66
|
+
{
|
|
67
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Generating Unit Test Reports...');
|
|
68
|
+
_UnitReporter.default.generate();
|
|
40
69
|
break;
|
|
41
70
|
}
|
|
42
71
|
case 'codegen':
|
|
@@ -63,6 +92,12 @@ switch (option) {
|
|
|
63
92
|
(0, _clearCaches.default)();
|
|
64
93
|
break;
|
|
65
94
|
}
|
|
95
|
+
case 'stepsGenerator':
|
|
96
|
+
{
|
|
97
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Created agents and prompts md files under .github folder...');
|
|
98
|
+
(0, _commonUtils.copyGithubFolder)();
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
66
101
|
case 'help':
|
|
67
102
|
default:
|
|
68
103
|
{
|
|
@@ -26,10 +26,12 @@ function helpercmd() {
|
|
|
26
26
|
_commander.program.command('report').description('This command is used to generate a report summarizing the results of executed tests.');
|
|
27
27
|
_commander.program.command('re-run-failed').description('This command will re-run the failed test cases based on test summary');
|
|
28
28
|
_commander.program.command('codegen').description('This command is used to assist developer to write test case');
|
|
29
|
+
_commander.program.command('merge-reports').description('This command merges the blob reports generated by the sharded runs into a single report');
|
|
29
30
|
_commander.program.option('--headed', 'Run tests with a headed browser.');
|
|
30
31
|
_commander.program.option('--debug', 'This command is used to initiate a debugging session');
|
|
31
32
|
_commander.program.option('--tags', 'Run specific test case with mentioned tags (Usage: -- --tags="@live")');
|
|
32
33
|
_commander.program.option('--workers', 'Specify number of workers to run the test case parallely (Usage: -- --workers=2)');
|
|
34
|
+
_commander.program.option('--shard', 'Split the test suite across parallel jobs. Each shard writes a blob report which has to be merged using merge-reports (Usage: -- --shard=1/4)');
|
|
33
35
|
_commander.program.option('--edition', 'Specify edition to run the test cases (Usage: -- --edition="standard". This will run the test cases with either no edition mentioned or edition standard)');
|
|
34
36
|
_commander.program.option('--browsers', 'Specify the browsers on which the test case should run (Usage: -- --browsers="chrome,firefox,safari")');
|
|
35
37
|
_commander.program.parse(process.argv);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// This is the sample file generated by testing framework. You can change as per the respective project login
|
|
2
|
+
|
|
3
|
+
const getUrlOrigin = require('../shared/url-helpers/getUrlOrigin');
|
|
4
|
+
|
|
5
|
+
async function accountLogin( { page, email, password } ) {
|
|
6
|
+
await page.locator('#login_id').fill(email);
|
|
7
|
+
await page.locator('#nextbtn').click();
|
|
8
|
+
await page.locator('#password').fill(password);
|
|
9
|
+
await page.locator('#nextbtn').click();
|
|
10
|
+
|
|
11
|
+
const domainUrlOrigin = getUrlOrigin(process.env.domain);
|
|
12
|
+
await page.waitForNavigation();
|
|
13
|
+
await Promise.race([
|
|
14
|
+
page.waitForURL(`${domainUrlOrigin}/**`),
|
|
15
|
+
page.waitForURL('**/announcement/**')
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = accountLogin;
|
|
@@ -1,71 +1,15 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
2
|
import { test as setup, expect } from '@zohodesk/testinglibrary';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import {
|
|
4
|
+
performLoginSteps,
|
|
5
|
+
getDefaultActor
|
|
6
|
+
} from '@zohodesk/testinglibrary/helpers';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
import { loginSteps , validateLogin } from './testSetup';
|
|
8
9
|
|
|
9
|
-
const
|
|
10
|
+
const user = getDefaultActor();
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
try {
|
|
16
|
-
return JSON.parse(cookies);
|
|
17
|
-
} catch (err) {
|
|
18
|
-
throw new Error(
|
|
19
|
-
` Error while parsing cookies ${err} \n${path.resolve(
|
|
20
|
-
process.cwd(),
|
|
21
|
-
authFilePath
|
|
22
|
-
)} File is Empty`
|
|
23
|
-
);
|
|
24
|
-
// process.exit()
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const authDirectory = getAuthFileDirectory(); //path.resolve(process.cwd(), 'uat', 'playwright', '.auth');
|
|
28
|
-
if (!existsSync(authDirectory)) {
|
|
29
|
-
console.log('Creating auth directory for the first time setup...');
|
|
30
|
-
mkdirSync(authDirectory, { recursive: true });
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
userdata.forEach(data => {
|
|
34
|
-
const authFile = path.resolve(path.join(authDirectory, `${data.filename}`));
|
|
35
|
-
if (!existsSync(authFile)) {
|
|
36
|
-
console.log('creating auth file..');
|
|
37
|
-
writeFileSync(authFile, JSON.stringify(authContent, null, 2));
|
|
38
|
-
}
|
|
39
|
-
setup(data.description, async ({ page }) => {
|
|
40
|
-
try {
|
|
41
|
-
const cookies = readFileSync(authFile);
|
|
42
|
-
const parsedCookies = convertCookiesToParse(cookies, authFile);
|
|
43
|
-
await page
|
|
44
|
-
.context()
|
|
45
|
-
.addCookies(
|
|
46
|
-
parsedCookies.cookies === undefined ? [] : parsedCookies.cookies
|
|
47
|
-
);
|
|
48
|
-
await page.goto(page.getBaseUrl());
|
|
49
|
-
await page.waitForLoadState();
|
|
50
|
-
if (await page.url().includes(process.env.domain)) {
|
|
51
|
-
await page.waitForSelector(data.locator);
|
|
52
|
-
} else {
|
|
53
|
-
throw new Error(LOGIN_ERR_MESSAGE);
|
|
54
|
-
}
|
|
55
|
-
} catch (err) {
|
|
56
|
-
if (err.message === LOGIN_ERR_MESSAGE) {
|
|
57
|
-
await expect(page.locator('.load-bg')).toBeHidden();
|
|
58
|
-
await page.locator('#login_id').type(data.useremail);
|
|
59
|
-
await page.locator('#nextbtn').click();
|
|
60
|
-
await page.locator('#password').type(data.password);
|
|
61
|
-
await page.locator('#nextbtn').click();
|
|
62
|
-
|
|
63
|
-
await page.waitForLoadState('networkidle');
|
|
64
|
-
|
|
65
|
-
await page.waitForSelector(data.locator);
|
|
66
|
-
|
|
67
|
-
await page.context().storageState({ path: authFile });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
});
|
|
12
|
+
setup(`${user.edition} - Authentication`, async ({ page }) => {
|
|
13
|
+
//Implement performLoginSteps here
|
|
14
|
+
await performLoginSteps({page, ...user},validateLogin ,loginSteps);
|
|
15
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "1",
|
|
4
|
+
"edition": "free",
|
|
5
|
+
"orgName": "orgFree",
|
|
6
|
+
"profiles": [
|
|
7
|
+
{
|
|
8
|
+
"profile": "admin",
|
|
9
|
+
"email": "admin+free@zohotest.com",
|
|
10
|
+
"password": "password@0987"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"profile": "agent",
|
|
14
|
+
"email": "agent@zohotest.com",
|
|
15
|
+
"password": "password@12345"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"profile": "lightagent",
|
|
19
|
+
"email": "lightagent@zohotest.com",
|
|
20
|
+
"password": "password@12345"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/* eslint-disable global-require */
|
|
2
|
+
const accountLogin = require('./accountLogin');
|
|
3
|
+
|
|
4
|
+
async function verifyPageIsLoaded({page}) {
|
|
5
|
+
|
|
6
|
+
//Implement your validation logic here
|
|
7
|
+
//Refer deskclientapp testSetup.js
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
module.exports = {
|
|
11
|
+
loginSteps:accountLogin,
|
|
12
|
+
validateLogin:verifyPageIsLoaded,
|
|
13
|
+
page:()=>{}
|
|
14
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const testSetup = require('../../fixtures/testSetup');
|
|
1
2
|
/**
|
|
2
3
|
* @typedef {Object|null} viewportConfig
|
|
3
4
|
* @property {number} width - width of the viewport
|
|
@@ -8,6 +9,7 @@
|
|
|
8
9
|
* @typedef {Object} UserConfig
|
|
9
10
|
* @property {string} headless - Headless Browsers mode.
|
|
10
11
|
* @property {number} trace - trace for test cases.
|
|
12
|
+
* @property {string} smokeTestTrace - trace mode for the smokeTest project (e.g. 'on', 'off', 'retain-on-failure'). Default is 'on'.
|
|
11
13
|
* @property {boolean} video - video for test cases,
|
|
12
14
|
* @property {boolean} debug - debug mode
|
|
13
15
|
* @property {string} mode: mode in which the test cases needs to run
|
|
@@ -18,12 +20,13 @@
|
|
|
18
20
|
* @property {any} reportPath : directory where report is generate
|
|
19
21
|
* @property {boolean} bddMode: Feature files needs to be processed
|
|
20
22
|
* @property {number} expectTimeout: time in milliseconds which the expect condition should fail
|
|
21
|
-
* @property {number} testTimeout: time in milliseconds which the test should fail
|
|
23
|
+
* @property {number} testTimeout: time in milliseconds which the test should fail. Can be overridden per-scenario by tagging the scenario with `@timeout_<seconds>` (e.g. `@timeout_180`). `@timeout_0` disables the timeout. Browser scaling (Firefox 2x, Safari 4x) is preserved.
|
|
22
24
|
* @property {Object} additionalPages: custom pages configuration
|
|
23
25
|
* @property {string} featureFilesFolder: folder name under which feature-files will be placed. Default is feature-files
|
|
24
26
|
* @property {string} stepDefinitionsFolder: folder name under which step implementations will be placed. Default is steps
|
|
25
27
|
* @property {viewportConfig} viewport: viewport configuration for the browser. Default is { width: 1280, height: 720 }
|
|
26
28
|
* @property {string} testIdAttribute: Change the default data-testid attribute. configure what attribute to search while calling getByTestId
|
|
29
|
+
* @property {boolean} failureSegregation: When true, collect runtime browser logs on failure, classify failing tests into CODE/CASE/TOOL/ENVIRONMENT, attach additional_logs, and merge tags like CODE_failure into the report. Default: true.
|
|
27
30
|
*/
|
|
28
31
|
|
|
29
32
|
/**
|
|
@@ -36,9 +39,11 @@ module.exports = {
|
|
|
36
39
|
isAuthMode: true,
|
|
37
40
|
authFilePath: 'uat/playwright/.auth/user.json',
|
|
38
41
|
trace: true,
|
|
42
|
+
smokeTestTrace: 'on',
|
|
39
43
|
video: true,
|
|
40
44
|
bddMode: true,
|
|
41
45
|
featureFilesFolder: 'feature-files',
|
|
42
46
|
stepDefinitionsFolder: 'steps',
|
|
43
|
-
viewport: { width: 1280, height: 720 }
|
|
47
|
+
viewport: { width: 1280, height: 720 },
|
|
48
|
+
testSetup
|
|
44
49
|
}
|
|
@@ -10,8 +10,9 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
10
10
|
var _logger = require("../utils/logger");
|
|
11
11
|
function getScriptsToBeAdded() {
|
|
12
12
|
return {
|
|
13
|
-
"uat": "ZDTestingFramework test --mode=
|
|
14
|
-
"uat-debug": "ZDTestingFramework test --mode=
|
|
13
|
+
"uat": "ZDTestingFramework test --mode=dev --headed",
|
|
14
|
+
"uat-debug": "ZDTestingFramework test --mode=dev --debug",
|
|
15
|
+
"uat-validate": "ZDTestingFramework validate",
|
|
15
16
|
"uat-report": "ZDTestingFramework report --port=9009",
|
|
16
17
|
"codegen": "ZDTestingFramework codegen deskclientapp.localzoho.com/agent"
|
|
17
18
|
};
|
|
@@ -71,9 +72,13 @@ function createAuthenticationFile() {
|
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
(0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'auth.setup.js'), getSetupFileAsString('auth-setup-sample.js'), null, 2);
|
|
74
|
-
(0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'authUsers.json'), getSetupFileAsString('authUsers-sample.json'), null, 2);
|
|
75
75
|
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating Authentication File ....');
|
|
76
|
+
(0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'accountLogin.js'), getSetupFileAsString('accountLogin-sample.js'), null, 2);
|
|
77
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating login script File ....');
|
|
78
|
+
(0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'testSetup.js'), getSetupFileAsString('testSetup-sample.js'), null, 2);
|
|
79
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating testSetup File ....');
|
|
76
80
|
} catch (err) {
|
|
81
|
+
_logger.Logger.error(err);
|
|
77
82
|
_logger.Logger.log(_logger.Logger.FAILURE_TYPE, 'Something went wrong ! Folder not Created. Please re-initialize npm init-uat');
|
|
78
83
|
}
|
|
79
84
|
} else {
|
|
@@ -83,8 +88,21 @@ function createAuthenticationFile() {
|
|
|
83
88
|
function createConfigJson() {
|
|
84
89
|
const uatFolder = _path.default.resolve(process.cwd(), 'uat');
|
|
85
90
|
if ((0, _fs.existsSync)(uatFolder)) {
|
|
86
|
-
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating
|
|
87
|
-
(0, _fs.
|
|
91
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating settings.json file inside UAT Folder');
|
|
92
|
+
if (!(0, _fs.existsSync)(_path.default.resolve(uatFolder, 'conf', 'default'))) {
|
|
93
|
+
(0, _fs.mkdirSync)(_path.default.resolve(uatFolder, 'conf', 'default'), {
|
|
94
|
+
recursive: true
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
(0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', './settings.json'), getSetupFileAsString('settings.json'), null, 2);
|
|
98
|
+
if (!(0, _fs.existsSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions'))) {
|
|
99
|
+
(0, _fs.mkdirSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions'), {
|
|
100
|
+
recursive: true
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
(0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions', 'free.json'), getSetupFileAsString('free-sample.json'), null, 2);
|
|
104
|
+
(0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions', 'index.js'), getSetupFileAsString('editions-index.js'), null, 2);
|
|
105
|
+
(0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'index.js'), getSetupFileAsString('actors-index.js'), null, 2);
|
|
88
106
|
} else {
|
|
89
107
|
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Something went wrong. Please re-initialize the @zohodesk/testinglibrary');
|
|
90
108
|
}
|