@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
package/package.json
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zohodesk/testinglibrary",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "",
|
|
3
|
+
"version": "0.1.12-experimental",
|
|
5
4
|
"main": "./build/index.js",
|
|
6
5
|
"scripts": {
|
|
7
6
|
"postinstall": "node bin/postinstall.js",
|
|
8
|
-
"test": "
|
|
7
|
+
"test": "jest",
|
|
9
8
|
"clean": "rm -rf build && mkdir build",
|
|
10
9
|
"build-babel": "babel -d ./build ./src --copy-files",
|
|
11
10
|
"build": "npm run clean && npm run build-babel",
|
|
@@ -14,44 +13,56 @@
|
|
|
14
13
|
},
|
|
15
14
|
"exports": {
|
|
16
15
|
".": "./build/index.js",
|
|
17
|
-
"./
|
|
16
|
+
"./helpers": "./build/core/playwright/helpers/auth/index.js",
|
|
17
|
+
"./DataGenerator": "./build/core/dataGenerator/DataGenerator.js",
|
|
18
|
+
"./thirdPartyHelper": "./build/core/playwright/helpers/thirdPartyLib.js"
|
|
18
19
|
},
|
|
19
20
|
"keywords": [],
|
|
20
21
|
"author": "",
|
|
21
22
|
"license": "ISC",
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"@babel/
|
|
24
|
-
"@
|
|
25
|
-
"@
|
|
26
|
-
"@
|
|
27
|
-
"@
|
|
28
|
-
"@testing-library/
|
|
29
|
-
"
|
|
24
|
+
"@babel/code-frame": "7.27.1",
|
|
25
|
+
"@babel/preset-react": "7.28.5",
|
|
26
|
+
"@babel/runtime": "7.28.6",
|
|
27
|
+
"@playwright/test": "1.58.2",
|
|
28
|
+
"@reportportal/agent-js-playwright": "5.2.2",
|
|
29
|
+
"@testing-library/jest-dom": "6.9.1",
|
|
30
|
+
"@testing-library/react": "12.1.5",
|
|
31
|
+
"@types/jest": "29.5.12",
|
|
32
|
+
"@types/react": "16.14.70",
|
|
33
|
+
"@types/react-dom": "16.9.25",
|
|
34
|
+
"@zohodesk/unit-testing-framework": "0.0.35-experimental",
|
|
35
|
+
"babel-jest": "29.7.0",
|
|
30
36
|
"babel-plugin-transform-dynamic-import": "2.1.0",
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
+
"commander": "13.1.0",
|
|
38
|
+
"fast-glob": "3.3.3",
|
|
39
|
+
"identity-obj-proxy": "3.0.0",
|
|
40
|
+
"jest": "29.7.0",
|
|
41
|
+
"jest-environment-jsdom": "29.7.0",
|
|
42
|
+
"jest-transform-stub": "2.0.0",
|
|
43
|
+
"jsonpath": "1.1.1",
|
|
44
|
+
"msw": "2.11.6",
|
|
45
|
+
"playwright": "1.58.2",
|
|
46
|
+
"playwright-bdd": "8.5.0",
|
|
47
|
+
"properties-reader": "2.3.0",
|
|
48
|
+
"react": "16.14.0",
|
|
49
|
+
"react-dom": "16.14.0",
|
|
50
|
+
"supports-color": "10.2.2"
|
|
37
51
|
},
|
|
38
52
|
"bin": {
|
|
39
53
|
"ZDTestingFramework": "./bin/cli.js"
|
|
40
54
|
},
|
|
41
55
|
"peerDependencies": {
|
|
42
|
-
"react": "*",
|
|
43
|
-
"react-dom": "*",
|
|
44
56
|
"eslint": "*"
|
|
45
57
|
},
|
|
46
58
|
"devDependencies": {
|
|
47
|
-
"@babel/cli": "7.
|
|
48
|
-
"@babel/core": "7.
|
|
49
|
-
"@babel/node": "7.
|
|
50
|
-
"@babel/plugin-transform-runtime": "7.
|
|
51
|
-
"@babel/
|
|
52
|
-
"@babel/preset-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"typescript": "^5.4.2"
|
|
59
|
+
"@babel/cli": "7.28.6",
|
|
60
|
+
"@babel/core": "7.29.0",
|
|
61
|
+
"@babel/node": "7.29.0",
|
|
62
|
+
"@babel/plugin-transform-runtime": "7.28.3",
|
|
63
|
+
"@babel/preset-env": "7.29.0",
|
|
64
|
+
"@babel/preset-typescript": "7.26.0",
|
|
65
|
+
"jest-html-reporter": "4.3.0",
|
|
66
|
+
"ts-jest": "29.3.2"
|
|
56
67
|
}
|
|
57
68
|
}
|
package/playwright.config.js
CHANGED
|
@@ -1,56 +1,38 @@
|
|
|
1
1
|
// @ts-check
|
|
2
2
|
const { defineConfig, devices } = require('@playwright/test');
|
|
3
3
|
const path = require('path');
|
|
4
|
-
|
|
4
|
+
import configConstants from './src/core/playwright/constants/configConstants';
|
|
5
|
+
import { getRunStage } from './src/core/playwright/configuration/ConfigurationHelper';
|
|
6
|
+
import { getProxyConfig } from './src/core/playwright/setup/config-utils';
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* https://github.com/motdotla/dotenv
|
|
9
|
-
*/
|
|
10
|
-
// require('dotenv').config();
|
|
8
|
+
const stage = getRunStage();
|
|
9
|
+
const proxyConfig = getProxyConfig();
|
|
11
10
|
|
|
12
|
-
/**
|
|
13
|
-
* @see https://playwright.dev/docs/test-configuration
|
|
14
|
-
*/
|
|
15
11
|
export default defineConfig({
|
|
16
|
-
testDir: path.join(path.resolve(process.cwd()),
|
|
17
|
-
outputDir: path.join(process.cwd(),
|
|
18
|
-
/* Run tests in files in parallel */
|
|
12
|
+
testDir: path.join(path.resolve(process.cwd()), configConstants.TEST_SLICE_FOLDER, stage),
|
|
13
|
+
outputDir: path.join(process.cwd(), configConstants.TEST_SLICE_FOLDER, stage , 'test-results'),
|
|
19
14
|
fullyParallel: true,
|
|
20
|
-
/* Fail the build on CI if you accidentally left test.only in the source code. */
|
|
21
|
-
forbidOnly: !!process.env.CI,
|
|
22
|
-
/* Retry on CI only */
|
|
23
15
|
retries: process.env.CI ? 2 : 0,
|
|
24
|
-
|
|
25
|
-
workers: process.env.CI ? 1 : 1,
|
|
26
|
-
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
|
|
27
|
-
reporter: [['html', { outputFolder: path.join(process.cwd(), 'uat', 'playwright-report'), open: "always" }]],
|
|
16
|
+
reporter: [['html', { outputFolder: path.join(process.cwd(), configConstants.TEST_SLICE_FOLDER, stage, 'playwright-report'), open: "always" }]],
|
|
28
17
|
timeout: 60 * 1000,
|
|
29
18
|
expect: {
|
|
30
19
|
timeout: 5 * 1000,
|
|
31
20
|
},
|
|
32
|
-
|
|
33
|
-
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
|
|
34
21
|
use: {
|
|
35
|
-
/* Base URL to use in actions like `await page.goto('/')`. */
|
|
36
|
-
//baseURL: process.env.domain,
|
|
37
|
-
|
|
38
|
-
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
|
39
22
|
trace: 'on',
|
|
40
23
|
video: {
|
|
41
24
|
mode: 'on',
|
|
42
25
|
size: { width: 640, height: 480 }
|
|
43
|
-
}
|
|
26
|
+
},
|
|
27
|
+
proxy: proxyConfig
|
|
44
28
|
},
|
|
45
|
-
|
|
46
|
-
/* Configure projects for major browsers */
|
|
47
29
|
projects: [
|
|
48
30
|
{ name: 'setup', testMatch: /.*\.setup\.js/ },
|
|
49
31
|
{
|
|
50
32
|
name: 'chromium',
|
|
51
33
|
use: {
|
|
52
34
|
...devices['Desktop Chrome'],
|
|
53
|
-
storageState: path.resolve(process.cwd(),
|
|
35
|
+
storageState: path.resolve(process.cwd(), configConstants.TEST_SLICE_FOLDER, stage, 'playwright/.auth/user.json')
|
|
54
36
|
},
|
|
55
37
|
dependencies: ['setup'],
|
|
56
38
|
},
|
|
@@ -63,7 +45,7 @@ export default defineConfig({
|
|
|
63
45
|
},
|
|
64
46
|
use: {
|
|
65
47
|
...devices['Desktop Firefox'],
|
|
66
|
-
storageState: path.resolve(process.cwd(),
|
|
48
|
+
storageState: path.resolve(process.cwd(), configConstants.TEST_SLICE_FOLDER, stage, 'playwright/.auth/user.json')
|
|
67
49
|
},
|
|
68
50
|
dependencies: ['setup'],
|
|
69
51
|
},
|
|
@@ -76,37 +58,11 @@ export default defineConfig({
|
|
|
76
58
|
},
|
|
77
59
|
use: {
|
|
78
60
|
...devices['Desktop Safari'],
|
|
79
|
-
storageState: path.resolve(process.cwd(),
|
|
61
|
+
storageState: path.resolve(process.cwd(), configConstants.TEST_SLICE_FOLDER, stage, 'playwright/.auth/user.json')
|
|
80
62
|
},
|
|
81
63
|
dependencies: ['setup'],
|
|
82
64
|
},
|
|
83
65
|
|
|
84
|
-
/* Test against mobile viewports. */
|
|
85
|
-
// {
|
|
86
|
-
// name: 'Mobile Chrome',
|
|
87
|
-
// use: { ...devices['Pixel 5'] },
|
|
88
|
-
// },
|
|
89
|
-
// {
|
|
90
|
-
// name: 'Mobile Safari',
|
|
91
|
-
// use: { ...devices['iPhone 12'] },
|
|
92
|
-
// },
|
|
93
|
-
|
|
94
|
-
/* Test against branded browsers. */
|
|
95
|
-
// {
|
|
96
|
-
// name: 'Microsoft Edge',
|
|
97
|
-
// use: { ...devices['Desktop Edge'], channel: 'msedge' },
|
|
98
|
-
// },
|
|
99
|
-
// {
|
|
100
|
-
// name: 'Google Chrome',
|
|
101
|
-
// use: { ...devices['Desktop Chrome'], channel: 'chrome' },
|
|
102
|
-
// },
|
|
103
66
|
],
|
|
104
|
-
|
|
105
|
-
/* Run your local dev server before starting the tests */
|
|
106
|
-
// webServer: {
|
|
107
|
-
// command: 'npm run start',
|
|
108
|
-
// url: 'http://127.0.0.1:3000',
|
|
109
|
-
// reuseExistingServer: !process.env.CI,
|
|
110
|
-
// },
|
|
111
67
|
});
|
|
112
68
|
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
<html><head><meta charset="utf-8"/><title>Unit Report</title><style type="text/css">:root {
|
|
2
|
+
--text-primary: #111;
|
|
3
|
+
--text-secondary: #4f4f4f;
|
|
4
|
+
--success: #006633;
|
|
5
|
+
--success-bright: #80ffbf;
|
|
6
|
+
--danger: #cc071e;
|
|
7
|
+
--danger-bright: #fbdfe0;
|
|
8
|
+
--warning: #995c00;
|
|
9
|
+
--warning-bright: #ffeea8;
|
|
10
|
+
--panel: #eee;
|
|
11
|
+
--border: #949494;
|
|
12
|
+
--disabled: #6b6b6b;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
html,
|
|
16
|
+
body {
|
|
17
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
18
|
+
font-size: 16px;
|
|
19
|
+
margin: 0;
|
|
20
|
+
padding: 0;
|
|
21
|
+
color: var(--text-primary);
|
|
22
|
+
}
|
|
23
|
+
body {
|
|
24
|
+
padding: 2rem 1rem;
|
|
25
|
+
}
|
|
26
|
+
.jesthtml-content {
|
|
27
|
+
margin: 0 auto;
|
|
28
|
+
max-width: 70rem;
|
|
29
|
+
}
|
|
30
|
+
header {
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
}
|
|
34
|
+
#title {
|
|
35
|
+
margin: 0;
|
|
36
|
+
flex-grow: 1;
|
|
37
|
+
}
|
|
38
|
+
#logo {
|
|
39
|
+
height: 4rem;
|
|
40
|
+
}
|
|
41
|
+
#timestamp {
|
|
42
|
+
color: var(--text-secondary);
|
|
43
|
+
margin-top: 0.5rem;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
#metadata-container {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: 2rem;
|
|
50
|
+
margin-bottom: 2rem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.additional-information-container {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-direction: column;
|
|
56
|
+
gap: 0.5rem;
|
|
57
|
+
color: var(--text-secondary);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** SUMMARY */
|
|
61
|
+
#summary {
|
|
62
|
+
color: var(--text-primary);
|
|
63
|
+
display: flex;
|
|
64
|
+
font-family: monospace;
|
|
65
|
+
font-size: 1rem;
|
|
66
|
+
}
|
|
67
|
+
#summary > div {
|
|
68
|
+
margin-right: 0.5rem;
|
|
69
|
+
background: var(--panel);
|
|
70
|
+
padding: 1rem;
|
|
71
|
+
min-width: 15rem;
|
|
72
|
+
}
|
|
73
|
+
#summary > div:last-child {
|
|
74
|
+
margin-right: 0;
|
|
75
|
+
}
|
|
76
|
+
@media only screen and (max-width: 720px) {
|
|
77
|
+
#summary {
|
|
78
|
+
flex-direction: column;
|
|
79
|
+
}
|
|
80
|
+
#summary > div {
|
|
81
|
+
margin-right: 0;
|
|
82
|
+
margin-top: 1rem;
|
|
83
|
+
}
|
|
84
|
+
#summary > div:first-child {
|
|
85
|
+
margin-top: 0;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.summary-total {
|
|
90
|
+
font-weight: bold;
|
|
91
|
+
margin-bottom: 0.5rem;
|
|
92
|
+
}
|
|
93
|
+
.summary-passed {
|
|
94
|
+
color: var(--success);
|
|
95
|
+
border-left: 0.4rem solid var(--success);
|
|
96
|
+
padding-left: 0.5rem;
|
|
97
|
+
margin-bottom: 0.15rem;
|
|
98
|
+
}
|
|
99
|
+
.summary-failed,
|
|
100
|
+
.summary-obsolete-snapshots {
|
|
101
|
+
color: var(--danger);
|
|
102
|
+
border-left: 0.4rem solid var(--danger);
|
|
103
|
+
padding-left: 0.5rem;
|
|
104
|
+
margin-bottom: 0.15rem;
|
|
105
|
+
}
|
|
106
|
+
.summary-pending {
|
|
107
|
+
color: var(--warning);
|
|
108
|
+
border-left: 0.4rem solid var(--warning);
|
|
109
|
+
padding-left: 0.5rem;
|
|
110
|
+
margin-bottom: 0.15rem;
|
|
111
|
+
}
|
|
112
|
+
.summary-empty {
|
|
113
|
+
color: var(--disabled);
|
|
114
|
+
border-left: 0.4rem solid var(--disabled);
|
|
115
|
+
margin-bottom: 0.15rem;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.test-result {
|
|
119
|
+
padding: 1rem;
|
|
120
|
+
margin-bottom: 0.25rem;
|
|
121
|
+
}
|
|
122
|
+
.test-result:last-child {
|
|
123
|
+
border: 0;
|
|
124
|
+
}
|
|
125
|
+
.test-result.passed {
|
|
126
|
+
background-color: var(--success-bright);
|
|
127
|
+
color: var(--success);
|
|
128
|
+
}
|
|
129
|
+
.test-result.failed {
|
|
130
|
+
background-color: var(--danger-bright);
|
|
131
|
+
color: var(--danger);
|
|
132
|
+
}
|
|
133
|
+
.test-result.pending {
|
|
134
|
+
background-color: var(--warning-bright);
|
|
135
|
+
color: var(--warning);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.test-info {
|
|
139
|
+
display: flex;
|
|
140
|
+
justify-content: space-between;
|
|
141
|
+
}
|
|
142
|
+
.test-suitename {
|
|
143
|
+
width: 20%;
|
|
144
|
+
text-align: left;
|
|
145
|
+
font-weight: bold;
|
|
146
|
+
word-break: break-word;
|
|
147
|
+
}
|
|
148
|
+
.test-title {
|
|
149
|
+
width: 40%;
|
|
150
|
+
text-align: left;
|
|
151
|
+
font-style: italic;
|
|
152
|
+
}
|
|
153
|
+
.test-status {
|
|
154
|
+
width: 20%;
|
|
155
|
+
text-align: right;
|
|
156
|
+
}
|
|
157
|
+
.test-duration {
|
|
158
|
+
width: 10%;
|
|
159
|
+
text-align: right;
|
|
160
|
+
font-size: 0.85rem;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.failureMessages {
|
|
164
|
+
padding: 0 1rem;
|
|
165
|
+
margin-top: 1rem;
|
|
166
|
+
border-top: 1px dashed var(--danger);
|
|
167
|
+
}
|
|
168
|
+
.failureMessages.suiteFailure {
|
|
169
|
+
border-top: none;
|
|
170
|
+
}
|
|
171
|
+
.failureMsg {
|
|
172
|
+
white-space: pre-wrap;
|
|
173
|
+
white-space: -moz-pre-wrap;
|
|
174
|
+
white-space: -pre-wrap;
|
|
175
|
+
white-space: -o-pre-wrap;
|
|
176
|
+
word-wrap: break-word;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.suite-container {
|
|
180
|
+
margin-bottom: 1rem;
|
|
181
|
+
}
|
|
182
|
+
.suite-info {
|
|
183
|
+
padding: 1rem;
|
|
184
|
+
background-color: var(--panel);
|
|
185
|
+
color: var(--text-secondary);
|
|
186
|
+
border: 0.15rem solid;
|
|
187
|
+
border-color: var(--panel);
|
|
188
|
+
display: flex;
|
|
189
|
+
align-items: center;
|
|
190
|
+
margin-bottom: 0.25rem;
|
|
191
|
+
}
|
|
192
|
+
.suite-info:hover {
|
|
193
|
+
border-color: var(--border);
|
|
194
|
+
cursor: pointer;
|
|
195
|
+
}
|
|
196
|
+
.suite-info .suite-path {
|
|
197
|
+
word-break: break-all;
|
|
198
|
+
flex-grow: 1;
|
|
199
|
+
font-family: monospace;
|
|
200
|
+
font-size: 1rem;
|
|
201
|
+
}
|
|
202
|
+
.suite-info .suite-time {
|
|
203
|
+
margin-left: 1rem;
|
|
204
|
+
padding: 0.2rem 0.3rem;
|
|
205
|
+
font-size: 0.85rem;
|
|
206
|
+
}
|
|
207
|
+
.suite-info .suite-time.warn {
|
|
208
|
+
background-color: var(--danger);
|
|
209
|
+
color: #fff;
|
|
210
|
+
}
|
|
211
|
+
.suite-info:before {
|
|
212
|
+
content: "\2303";
|
|
213
|
+
display: inline-block;
|
|
214
|
+
margin-right: 1rem;
|
|
215
|
+
transform: rotate(180deg) translateY(0.15rem);
|
|
216
|
+
}
|
|
217
|
+
.suite-container[open] .suite-info:before {
|
|
218
|
+
transform: rotate(0deg) translateY(0.15rem);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* CONSOLE LOGS */
|
|
222
|
+
.suite-consolelog {
|
|
223
|
+
margin-bottom: 0.25rem;
|
|
224
|
+
padding: 1rem;
|
|
225
|
+
background-color: var(--panel);
|
|
226
|
+
}
|
|
227
|
+
.suite-consolelog-header {
|
|
228
|
+
font-weight: bold;
|
|
229
|
+
}
|
|
230
|
+
.suite-consolelog-item {
|
|
231
|
+
padding: 0.5rem;
|
|
232
|
+
}
|
|
233
|
+
.suite-consolelog-item pre {
|
|
234
|
+
margin: 0.5rem 0;
|
|
235
|
+
white-space: pre-wrap;
|
|
236
|
+
white-space: -moz-pre-wrap;
|
|
237
|
+
white-space: -pre-wrap;
|
|
238
|
+
white-space: -o-pre-wrap;
|
|
239
|
+
word-wrap: break-word;
|
|
240
|
+
}
|
|
241
|
+
.suite-consolelog-item-origin {
|
|
242
|
+
color: var(--text-secondary);
|
|
243
|
+
font-weight: bold;
|
|
244
|
+
}
|
|
245
|
+
.suite-consolelog-item-message {
|
|
246
|
+
color: var(--text-primary);
|
|
247
|
+
font-size: 1rem;
|
|
248
|
+
padding: 0 0.5rem;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* OBSOLETE SNAPSHOTS */
|
|
252
|
+
.suite-obsolete-snapshots {
|
|
253
|
+
margin-bottom: 0.25rem;
|
|
254
|
+
padding: 1rem;
|
|
255
|
+
background-color: var(--danger-bright);
|
|
256
|
+
color: var(--danger);
|
|
257
|
+
}
|
|
258
|
+
.suite-obsolete-snapshots-header {
|
|
259
|
+
font-weight: bold;
|
|
260
|
+
}
|
|
261
|
+
.suite-obsolete-snapshots-item {
|
|
262
|
+
padding: 0.5rem;
|
|
263
|
+
}
|
|
264
|
+
.suite-obsolete-snapshots-item pre {
|
|
265
|
+
margin: 0.5rem 0;
|
|
266
|
+
white-space: pre-wrap;
|
|
267
|
+
white-space: -moz-pre-wrap;
|
|
268
|
+
white-space: -pre-wrap;
|
|
269
|
+
white-space: -o-pre-wrap;
|
|
270
|
+
word-wrap: break-word;
|
|
271
|
+
}
|
|
272
|
+
.suite-obsolete-snapshots-item-message {
|
|
273
|
+
color: var(--text-primary);
|
|
274
|
+
font-size: 1rem;
|
|
275
|
+
padding: 0 0.5rem;
|
|
276
|
+
}
|
|
277
|
+
</style></head><body><main class="jesthtml-content"><header><h1 id="title">Unit Report</h1></header><section id="metadata-container"><div id="timestamp">Started: 2026-09-07 21:42:46</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (2)</div><div class="summary-passed ">2 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 (15)</div><div class="summary-passed ">15 passed</div><div class="summary-failed summary-empty">0 failed</div><div class="summary-pending summary-empty">0 pending</div></div></div></section><details id="suite-1" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/muthu-19817/git/testing-framework/src/test/core/playwright/__tests__/spawnInheritChild.test.js</div><div class="suite-time">0.494s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should spawn the child with the parent stdio and environment</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">spawnInheritChild</div><div class="test-title">should resolve and log the success message when the child exits cleanly</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should reject with the default message when the child exits with a failure</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should reject with the caller message when bddgen exits with a failure</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should reject when the child fails to spawn</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">spawnInheritChild</div><div class="test-title">should not listen on the parent process unless the caller asks for it</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should kill the child and reject when the run is interrupted</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">spawnInheritChild</div><div class="test-title">should kill the child and reject when the parent exits</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should log the failure and exit when a CLI child exits with a failure</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">spawnInheritChild</div><div class="test-title">should not listen for SIGINT unless the caller owns the child lifetime</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should exit with the child when the caller owns the process lifetime</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should propagate the child exit code when merge-reports completes</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">spawnInheritChild</div><div class="test-title">should log spawn errors without rejecting a CLI command</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">spawnInheritChild</div><div class="test-title">should kill the child on SIGINT and on the parent exit</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div></div></details><details id="suite-2" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/muthu-19817/git/testing-framework/src/test/core/playwright/runner/__tests__/SpawnRunner.test.js</div><div class="suite-time">0.081s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">SpawnRunner > run</div><div class="test-title">should call runPreprocessing when bddMode is true</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div></div></details></main></body></html>
|
|
@@ -1,42 +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.envCommand = void 0;
|
|
8
|
-
exports.getOwnVersion = getOwnVersion;
|
|
9
|
-
var _commander = require("commander");
|
|
10
|
-
var _options = require("../options");
|
|
11
|
-
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
var _logger = require("../../utils/logger");
|
|
13
|
-
var _utils = require("../../utils");
|
|
14
|
-
var _loadConfig = require("../../playwright/loadConfig");
|
|
15
|
-
const logger = new _logger.Logger({
|
|
16
|
-
verbose: true
|
|
17
|
-
});
|
|
18
|
-
const envCommand = exports.envCommand = new _commander.Command('env').description('Prints environment info').addOption(_options.configOption).action(opts => {
|
|
19
|
-
logger.log(`Playwright-bdd environment info:\n`);
|
|
20
|
-
logger.log(`platform: ${process.platform}`);
|
|
21
|
-
logger.log(`node: ${process.version}`);
|
|
22
|
-
showPackageVersion('playwright-bdd');
|
|
23
|
-
showPackageVersion('@playwright/test');
|
|
24
|
-
showPackageVersion('@cucumber/cucumber');
|
|
25
|
-
showPlaywrightConfigPath(opts.config);
|
|
26
|
-
});
|
|
27
|
-
function showPackageVersion(packageName) {
|
|
28
|
-
const version = packageName === 'playwright-bdd' ? getOwnVersion() : (0, _utils.getPackageVersion)(packageName);
|
|
29
|
-
logger.log(`${packageName}: v${version}`);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Getting own version by relative path instead of using getPackageVersion(),
|
|
33
|
-
* to aneble using directly from /dist in tests.
|
|
34
|
-
*/
|
|
35
|
-
function getOwnVersion() {
|
|
36
|
-
return '6.0.1';
|
|
37
|
-
}
|
|
38
|
-
function showPlaywrightConfigPath(cliConfigPath) {
|
|
39
|
-
const resolvedConfigFile = (0, _loadConfig.resolveConfigFile)(cliConfigPath);
|
|
40
|
-
const relPath = _path.default.relative(process.cwd(), resolvedConfigFile);
|
|
41
|
-
logger.log(`Playwright config file: ${relPath}`);
|
|
42
|
-
}
|
|
@@ -1,47 +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.exportCommand = void 0;
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
var _commander = require("commander");
|
|
10
|
-
var _options = require("../options");
|
|
11
|
-
var _loadConfig = require("../../playwright/loadConfig");
|
|
12
|
-
var _logger = require("../../utils/logger");
|
|
13
|
-
var _env = require("../../config/env");
|
|
14
|
-
var _test = require("./test");
|
|
15
|
-
var _gen = require("../../gen");
|
|
16
|
-
const logger = new _logger.Logger({
|
|
17
|
-
verbose: true
|
|
18
|
-
});
|
|
19
|
-
const exportCommand = exports.exportCommand = new _commander.Command('export').description('Prints all step definitions').addOption(_options.configOption).action(async opts => {
|
|
20
|
-
const {
|
|
21
|
-
resolvedConfigFile
|
|
22
|
-
} = await (0, _loadConfig.loadConfig)(opts.config);
|
|
23
|
-
logger.log(`List of all steps found by config: ${_path.default.relative(process.cwd(), resolvedConfigFile)}\n`);
|
|
24
|
-
const configs = Object.values((0, _env.getEnvConfigs)());
|
|
25
|
-
(0, _test.assertConfigsCount)(configs);
|
|
26
|
-
await showStepsForConfigs(configs);
|
|
27
|
-
});
|
|
28
|
-
async function showStepsForConfigs(configs) {
|
|
29
|
-
// here we don't need workers (as in test command) because if some step files
|
|
30
|
-
// are already in node cache, we collected them.
|
|
31
|
-
const steps = new Set();
|
|
32
|
-
const tasks = configs.map(async config => {
|
|
33
|
-
const stepDefinitions = await new _gen.TestFilesGenerator(config).extractSteps();
|
|
34
|
-
stepDefinitions.forEach(s => steps.add(`* ${getStepText(s)}`));
|
|
35
|
-
});
|
|
36
|
-
await Promise.all(tasks);
|
|
37
|
-
steps.forEach(stepText => logger.log(stepText));
|
|
38
|
-
}
|
|
39
|
-
function getStepText({
|
|
40
|
-
pattern,
|
|
41
|
-
keyword
|
|
42
|
-
}) {
|
|
43
|
-
// for Unknown return When as it looks the most suitable
|
|
44
|
-
const keywordText = keyword === 'Unknown' ? 'When' : keyword;
|
|
45
|
-
const patternText = typeof pattern === 'string' ? pattern : pattern.source;
|
|
46
|
-
return `${keywordText} ${patternText}`;
|
|
47
|
-
}
|
|
@@ -1,64 +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.assertConfigsCount = assertConfigsCount;
|
|
8
|
-
exports.testCommand = void 0;
|
|
9
|
-
var _worker_threads = require("worker_threads");
|
|
10
|
-
var _events = require("events");
|
|
11
|
-
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
var _commander = require("commander");
|
|
13
|
-
var _gen = require("../../gen");
|
|
14
|
-
var _loadConfig = require("../../playwright/loadConfig");
|
|
15
|
-
var _env = require("../../config/env");
|
|
16
|
-
var _config = require("../../config");
|
|
17
|
-
var _options = require("../options");
|
|
18
|
-
var _exit = require("../../utils/exit");
|
|
19
|
-
const GEN_WORKER_PATH = _path.default.resolve(__dirname, '..', 'worker.js');
|
|
20
|
-
const testCommand = exports.testCommand = new _commander.Command('test').description('Generate Playwright test files from Gherkin documents').addOption(_options.configOption).option('--tags <expression>', `Tags expression to filter scenarios for generation`).option('--verbose', `Verbose mode (default: ${Boolean(_config.defaults.verbose)})`).action(async opts => {
|
|
21
|
-
await (0, _loadConfig.loadConfig)(opts.config);
|
|
22
|
-
const configs = readConfigsFromEnv();
|
|
23
|
-
mergeCliOptions(configs, opts);
|
|
24
|
-
await generateFilesForConfigs(configs);
|
|
25
|
-
});
|
|
26
|
-
function readConfigsFromEnv() {
|
|
27
|
-
const configs = Object.values((0, _env.getEnvConfigs)());
|
|
28
|
-
assertConfigsCount(configs);
|
|
29
|
-
return configs;
|
|
30
|
-
}
|
|
31
|
-
function mergeCliOptions(configs, opts) {
|
|
32
|
-
configs.forEach(config => {
|
|
33
|
-
if ('tags' in opts) {
|
|
34
|
-
config.tags = opts.tags;
|
|
35
|
-
}
|
|
36
|
-
if ('verbose' in opts) {
|
|
37
|
-
config.verbose = Boolean(opts.verbose);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
function assertConfigsCount(configs) {
|
|
42
|
-
if (configs.length === 0) {
|
|
43
|
-
(0, _exit.exit)(`No BDD configs found. Did you use defineBddConfig() in playwright.config.ts?`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
async function generateFilesForConfigs(configs) {
|
|
47
|
-
// run first config in main thread and other in workers (to have fresh require cache)
|
|
48
|
-
// See: https://github.com/vitalets/playwright-bdd/issues/32
|
|
49
|
-
const tasks = configs.map((config, index) => {
|
|
50
|
-
return index === 0 ? new _gen.TestFilesGenerator(config).generate() : runInWorker(config);
|
|
51
|
-
});
|
|
52
|
-
return Promise.all(tasks);
|
|
53
|
-
}
|
|
54
|
-
async function runInWorker(config) {
|
|
55
|
-
const worker = new _worker_threads.Worker(GEN_WORKER_PATH, {
|
|
56
|
-
workerData: {
|
|
57
|
-
config
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
const [exitCode] = await (0, _events.once)(worker, 'exit');
|
|
61
|
-
if (exitCode) {
|
|
62
|
-
(0, _exit.exit)();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
var _commander = require("commander");
|
|
5
|
-
var _test = require("./commands/test");
|
|
6
|
-
var _env = require("./commands/env");
|
|
7
|
-
var _export = require("./commands/export");
|
|
8
|
-
const program = new _commander.Command();
|
|
9
|
-
program.name('bddgen').description(`Playwright-bdd CLI v${(0, _env.getOwnVersion)()}`).addCommand(_test.testCommand, {
|
|
10
|
-
isDefault: true
|
|
11
|
-
}).addCommand(_export.exportCommand).addCommand(_env.envCommand).addHelpCommand(false).parse();
|