@zohodesk/testinglibrary 0.0.3 → 0.0.4-n20-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 +24 -0
- package/.eslintrc.js +31 -0
- package/.gitlab-ci.yml +175 -0
- package/.prettierrc +6 -0
- package/README.md +151 -1
- package/bin/cli.js +1 -1
- package/bin/postinstall.js +1 -16
- package/build/common/data-generator/steps/DataGenerator.spec.js +19 -0
- package/build/common/data-generator/steps/DataGeneratorStepsHelper.js +19 -0
- package/build/common/multi-actor/steps/multiActorHandling.spec.js +26 -0
- package/build/common/searchFake/helpers/rpcRequestHelper.js +41 -0
- package/build/common/searchFake/steps/searchFake.spec.js +26 -0
- package/build/core/dataGenerator/DataGenerator.js +94 -0
- package/build/core/dataGenerator/DataGeneratorHelper.js +49 -0
- package/{src → build}/core/jest/preprocessor/jsPreprocessor.js +4 -6
- package/{src → build}/core/jest/runner/jest-runner.js +17 -15
- package/build/core/jest/setup/index.js +3 -0
- package/build/core/playwright/builtInFixtures/actorContext.js +75 -0
- package/build/core/playwright/builtInFixtures/addTags.js +19 -0
- package/build/core/playwright/builtInFixtures/cacheLayer.js +13 -0
- package/build/core/playwright/builtInFixtures/context.js +32 -0
- package/build/core/playwright/builtInFixtures/executionContext.js +17 -0
- package/build/core/playwright/builtInFixtures/i18N.js +41 -0
- package/build/core/playwright/builtInFixtures/index.js +46 -0
- package/build/core/playwright/builtInFixtures/page.js +38 -0
- package/build/core/playwright/builtInFixtures/unauthenticatedPage.js +18 -0
- package/build/core/playwright/clear-caches.js +49 -0
- package/build/core/playwright/codegen.js +55 -0
- package/build/core/playwright/configuration/Configuration.js +25 -0
- package/build/core/playwright/configuration/ConfigurationHelper.js +43 -0
- package/build/core/playwright/configuration/UserArgs.js +12 -0
- package/build/core/playwright/constants/browserTypes.js +12 -0
- package/build/core/playwright/constants/fileMutexConfig.js +9 -0
- package/build/core/playwright/custom-commands.js +7 -0
- package/build/core/playwright/env-initializer.js +43 -0
- 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 +21 -0
- package/build/core/playwright/helpers/auth/checkAuthCookies.js +41 -0
- package/build/core/playwright/helpers/auth/getUrlOrigin.js +13 -0
- package/build/core/playwright/helpers/auth/getUsers.js +118 -0
- package/build/core/playwright/helpers/auth/index.js +76 -0
- package/build/core/playwright/helpers/auth/loginDefaultStepsHelper.js +54 -0
- package/build/core/playwright/helpers/auth/loginSteps.js +50 -0
- package/build/core/playwright/helpers/checkAuthDirectory.js +27 -0
- package/build/core/playwright/helpers/configFileNameProvider.js +31 -0
- package/build/core/playwright/helpers/customFixturesHelper.js +58 -0
- package/build/core/playwright/helpers/fileMutex.js +71 -0
- package/build/core/playwright/helpers/getUserFixtures.js +23 -0
- package/build/core/playwright/helpers/mergeObjects.js +13 -0
- package/build/core/playwright/helpers/parseUserArgs.js +10 -0
- package/build/core/playwright/index.js +24 -0
- package/build/core/playwright/readConfigFile.js +147 -0
- package/build/core/playwright/report-generator.js +42 -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 +113 -0
- package/build/core/playwright/setup/config-creator.js +117 -0
- package/build/core/playwright/setup/config-utils.js +188 -0
- package/build/core/playwright/setup/custom-reporter.js +136 -0
- package/build/core/playwright/setup/qc-custom-reporter.js +291 -0
- package/build/core/playwright/tagProcessor.js +69 -0
- package/build/core/playwright/test-runner.js +116 -0
- package/build/core/playwright/types.js +44 -0
- package/build/core/playwright/validateFeature.js +28 -0
- package/build/decorators.d.ts +1 -0
- package/build/decorators.js +16 -0
- package/build/index.d.ts +78 -0
- package/build/index.js +105 -0
- package/build/lib/cli.js +78 -0
- package/build/lib/post-install.js +25 -0
- package/build/lint/index.js +4 -0
- package/build/parser/parser.js +205 -0
- package/build/parser/sample.feature +34 -0
- package/build/parser/sample.spec.js +37 -0
- package/build/parser/verifier.js +130 -0
- package/build/setup-folder-structure/helper.js +37 -0
- package/build/setup-folder-structure/reportEnhancement/addonScript.html +25 -0
- package/build/setup-folder-structure/reportEnhancement/reportAlteration.js +25 -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 +15 -0
- 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/git-ignore.sample.js +37 -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 +46 -0
- package/build/setup-folder-structure/setupProject.js +122 -0
- package/build/test/core/playwright/__tests__/tagProcessor.test.js +94 -0
- package/build/test/core/playwright/__tests__/validateFeature.test.js +69 -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 +34 -0
- package/build/test/core/playwright/helpers/__tests__/customFixturesHelper.test.js +51 -0
- package/build/test/core/playwright/helpers/__tests__/fileMutex.test.js +79 -0
- package/build/test/core/playwright/helpers/__tests__/getUsers_ListOfActors.test.js +80 -0
- package/build/test/core/playwright/runner/__tests__/RunnerHelper.test.js +16 -0
- package/build/test/core/playwright/runner/__tests__/SpawnRunner.test.js +27 -0
- package/build/utils/cliArgsToObject.js +72 -0
- package/build/utils/commonUtils.js +17 -0
- package/build/utils/fileUtils.js +109 -0
- package/build/utils/getFilePath.js +11 -0
- package/build/utils/logger.js +28 -0
- package/build/utils/rootPath.js +53 -0
- package/build/utils/stepDefinitionsFormatter.js +11 -0
- package/changelog.md +153 -1
- package/jest.config.js +29 -11
- package/npm-shrinkwrap.json +10902 -4825
- package/package.json +47 -17
- package/playwright.config.js +6 -56
- package/test-results/.last-run.json +4 -0
- package/unit_reports/unit-report.html +260 -0
- package/src/core/jest/setup/index.js +0 -165
- package/src/core/playwright/codegen.js +0 -60
- package/src/core/playwright/custom-commands.js +0 -3
- package/src/core/playwright/env-initializer.js +0 -24
- package/src/core/playwright/index.js +0 -82
- package/src/core/playwright/readConfigFile.js +0 -30
- package/src/core/playwright/report-generator.js +0 -43
- package/src/core/playwright/setup/config-creator.js +0 -79
- package/src/core/playwright/test-runner.js +0 -64
- package/src/index.js +0 -9
- package/src/lib/cli.js +0 -35
- package/src/utils/cliArgsToObject.js +0 -35
- package/src/utils/getFilePath.js +0 -9
- package/src/utils/logger.js +0 -28
- package/src/utils/rootPath.js +0 -51
|
@@ -0,0 +1,116 @@
|
|
|
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
|
+
exports.runPreprocessing = runPreprocessing;
|
|
9
|
+
var _child_process = require("child_process");
|
|
10
|
+
var _path = _interopRequireDefault(require("path"));
|
|
11
|
+
var _customCommands = require("./custom-commands");
|
|
12
|
+
var _cliArgsToObject = require("../../utils/cliArgsToObject");
|
|
13
|
+
var _envInitializer = require("./env-initializer");
|
|
14
|
+
var _logger = require("../../utils/logger");
|
|
15
|
+
var _readConfigFile = require("./readConfigFile");
|
|
16
|
+
var _rootPath = require("../../utils/rootPath");
|
|
17
|
+
var _tagProcessor = _interopRequireDefault(require("./tagProcessor"));
|
|
18
|
+
var _configUtils = require("./setup/config-utils");
|
|
19
|
+
var _browserTypes = require("./constants/browserTypes");
|
|
20
|
+
var _ConfigurationHelper = require("./configuration/ConfigurationHelper");
|
|
21
|
+
var _Configuration = _interopRequireDefault(require("./configuration/Configuration"));
|
|
22
|
+
var _UserArgs = _interopRequireDefault(require("./configuration/UserArgs"));
|
|
23
|
+
var _RunnerHelper = _interopRequireDefault(require("./runner/RunnerHelper"));
|
|
24
|
+
var _Runner = _interopRequireDefault(require("./runner/Runner"));
|
|
25
|
+
function runPreprocessing(tagArgs, configPath) {
|
|
26
|
+
const beforeCommand = 'node';
|
|
27
|
+
const bddGenPath = _path.default.resolve((0, _rootPath.getExecutableBinaryPath)('bddgen'));
|
|
28
|
+
const beforeArgs = [bddGenPath, '-c', configPath];
|
|
29
|
+
if (tagArgs) {
|
|
30
|
+
beforeArgs.push('--tags');
|
|
31
|
+
beforeArgs.push(tagArgs);
|
|
32
|
+
}
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
const childProcessForPreprocessing = (0, _child_process.spawn)(beforeCommand, beforeArgs, {
|
|
35
|
+
stdio: 'inherit',
|
|
36
|
+
env: {
|
|
37
|
+
...process.env
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
childProcessForPreprocessing.on('error', data => {
|
|
41
|
+
_logger.Logger.log(_logger.Logger.FAILURE_TYPE, data);
|
|
42
|
+
reject(data);
|
|
43
|
+
});
|
|
44
|
+
childProcessForPreprocessing.on('exit', code => {
|
|
45
|
+
if (code === 0) {
|
|
46
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Feature Files Processed Successfully');
|
|
47
|
+
resolve();
|
|
48
|
+
} else {
|
|
49
|
+
reject(`BddGen exited with code ${code}`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function runPlaywright(command, args) {
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
const childProcessForRunningPlaywright = (0, _child_process.spawn)(command, args, {
|
|
57
|
+
stdio: 'inherit',
|
|
58
|
+
env: {
|
|
59
|
+
...process.env
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
childProcessForRunningPlaywright.on('error', error => {
|
|
63
|
+
_logger.Logger.log(_logger.Logger.FAILURE_TYPE, error);
|
|
64
|
+
});
|
|
65
|
+
childProcessForRunningPlaywright.on('exit', (code, signal) => {
|
|
66
|
+
if (code !== 0) {
|
|
67
|
+
reject(`Child Process Exited with Code ${code} and Signal ${signal}`);
|
|
68
|
+
} else {
|
|
69
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Test Ran Successfully');
|
|
70
|
+
resolve();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
process.on('exit', () => {
|
|
74
|
+
childProcessForRunningPlaywright.kill();
|
|
75
|
+
reject('Terminating Playwright Process...');
|
|
76
|
+
});
|
|
77
|
+
process.on('SIGINT', () => {
|
|
78
|
+
childProcessForRunningPlaywright.kill();
|
|
79
|
+
reject('Cleaning up...');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function main() {
|
|
84
|
+
// Getting the default config's from framework
|
|
85
|
+
const uatConfig = new _Configuration.default((0, _readConfigFile.getDefaultConfig)());
|
|
86
|
+
// overriding the application config's from project
|
|
87
|
+
const userArgConfig = new _Configuration.default(_UserArgs.default.parseToObject(process.argv.slice(2)));
|
|
88
|
+
const mode = userArgConfig.get("mode");
|
|
89
|
+
uatConfig.addAll(new _Configuration.default((0, _ConfigurationHelper.getApplicationConfig)(mode)));
|
|
90
|
+
// overriding the user config's from CLI
|
|
91
|
+
uatConfig.addAll(userArgConfig);
|
|
92
|
+
const modules = uatConfig.get('modules');
|
|
93
|
+
|
|
94
|
+
//We need to change this process.env variable to pass the module name in future.
|
|
95
|
+
process.env.modules = modules;
|
|
96
|
+
const {
|
|
97
|
+
isAuthMode,
|
|
98
|
+
editionOrder,
|
|
99
|
+
debug,
|
|
100
|
+
bddMode = false,
|
|
101
|
+
headless = false
|
|
102
|
+
} = uatConfig.getAll();
|
|
103
|
+
(0, _envInitializer.initializeEnvConfig)(mode, isAuthMode);
|
|
104
|
+
|
|
105
|
+
//This is only used for pass the user arguments to need places in legacy code. We need to rewamp that also.
|
|
106
|
+
const userArgsObject = userArgConfig.getAll();
|
|
107
|
+
const tagProcessor = new _tagProcessor.default(editionOrder);
|
|
108
|
+
const tagArgs = tagProcessor.processTags(uatConfig.getAll());
|
|
109
|
+
const runnerObj = new _Runner.default();
|
|
110
|
+
runnerObj.setTagArgs(tagArgs);
|
|
111
|
+
runnerObj.setUserArgs(userArgsObject);
|
|
112
|
+
runnerObj.setConfig(uatConfig);
|
|
113
|
+
const runner = _RunnerHelper.default.createRunner('spawn', runnerObj);
|
|
114
|
+
runner.run();
|
|
115
|
+
}
|
|
116
|
+
var _default = exports.default = main;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object|null} viewportConfig
|
|
3
|
+
* @property {number} width - width of the viewport
|
|
4
|
+
* @property {number} height - height of the viewport
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object|null} viewportConfig
|
|
8
|
+
* @property {number} width - width of the viewport
|
|
9
|
+
* @property {number} height - height of the viewport
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {Object|null} testSetupConfig
|
|
14
|
+
* @property {any} page - Function that will be called while setting up page fixtures
|
|
15
|
+
* @property {any} context - Function that will be called while setting up context fixtures
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Represents the user configuration object.
|
|
20
|
+
* @typedef {Object} UserConfig
|
|
21
|
+
* @property {string} uatDirectory - Directory in which uat configuration is places.
|
|
22
|
+
* @property {string} headless - Headless Browsers mode.
|
|
23
|
+
* @property {number} trace - trace for test cases.
|
|
24
|
+
* @property {boolean} video - video for test cases,
|
|
25
|
+
* @property {boolean} debug - debug mode
|
|
26
|
+
* @property {string} mode: mode in which the test cases needs to run
|
|
27
|
+
* @property {boolean} isAuthMode - Auth Mode. config whether authentication step needed before running test cases
|
|
28
|
+
* @property {string} authFilePath - File Path where the cookies stored
|
|
29
|
+
* @property {any} browsers: List of browsers
|
|
30
|
+
* @property {string} openReportOn: default Option value (never, on-failure and always)
|
|
31
|
+
* @property {any} reportPath : directory where report is generate
|
|
32
|
+
* @property {boolean} bddMode: Feature files needs to be processed
|
|
33
|
+
* @property {number} expectTimeout: time in milliseconds which the expect condition should fail
|
|
34
|
+
* @property {number} testTimeout: time in milliseconds which the test should fail
|
|
35
|
+
* @property {Object} additionalPages: custom pages configuration
|
|
36
|
+
* @property {string} featureFilesFolder: folder name under which feature-files will be placed. Default is feature-files
|
|
37
|
+
* @property {string} stepDefinitionsFolder: folder name under which step implementations will be placed. Default is steps
|
|
38
|
+
* @property {viewportConfig} viewport: viewport configuration for the browser. Default is { width: 1280, height: 720 }
|
|
39
|
+
* @property {string} testIdAttribute: Change the default data-testid attribute. configure what attribute to search while calling getByTestId
|
|
40
|
+
* @property {Array} editionOrder: Order in the form of larger editions in the back. Edition with the most privelages should be last
|
|
41
|
+
* @property {testSetupConfig} testSetup: Specify page and context functions that will be called while intilaizing fixtures.
|
|
42
|
+
* @property {string} modules: Modules name to be used for running the specific module test cases.
|
|
43
|
+
*/
|
|
44
|
+
"use strict";
|
|
@@ -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;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from 'playwright-bdd/decorators';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _decorators = require("playwright-bdd/decorators");
|
|
7
|
+
Object.keys(_decorators).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _decorators[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _decorators[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
expect,
|
|
3
|
+
test,
|
|
4
|
+
createBdd
|
|
5
|
+
} from './core/playwright/index';
|
|
6
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
7
|
+
import {
|
|
8
|
+
PlaywrightTestArgs,
|
|
9
|
+
PlaywrightTestOptions,
|
|
10
|
+
PlaywrightWorkerArgs,
|
|
11
|
+
PlaywrightWorkerOptions,
|
|
12
|
+
TestType,
|
|
13
|
+
Page
|
|
14
|
+
} from '@playwright/test';
|
|
15
|
+
import { DefineStepPattern } from '@cucumber/cucumber/lib/support_code_library_builder/types';
|
|
16
|
+
|
|
17
|
+
export type KeyValue = { [key: string]: any };
|
|
18
|
+
|
|
19
|
+
export type BuiltInFixturesWorker = PlaywrightWorkerArgs &
|
|
20
|
+
PlaywrightWorkerOptions;
|
|
21
|
+
export type BuiltInFixtures = PlaywrightTestArgs &
|
|
22
|
+
PlaywrightTestOptions &
|
|
23
|
+
BuiltInFixturesWorker;
|
|
24
|
+
|
|
25
|
+
export type FixturesArg<T extends KeyValue = {}, W extends KeyValue = {}> = T &
|
|
26
|
+
W &
|
|
27
|
+
BuiltInFixtures;
|
|
28
|
+
|
|
29
|
+
export declare let hasCustomTest: boolean;
|
|
30
|
+
|
|
31
|
+
export declare function createBdd<
|
|
32
|
+
T extends KeyValue = BuiltInFixtures,
|
|
33
|
+
W extends KeyValue = BuiltInFixturesWorker,
|
|
34
|
+
World
|
|
35
|
+
>(
|
|
36
|
+
customTest?: TestType<T, W> | null,
|
|
37
|
+
_CustomWorld?: new (...args: any[]) => World
|
|
38
|
+
): {
|
|
39
|
+
Given: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
|
|
40
|
+
When: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
|
|
41
|
+
Then: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
|
|
42
|
+
And: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
|
|
43
|
+
But: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
|
|
44
|
+
Step: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
|
|
45
|
+
Before: any;
|
|
46
|
+
After: any;
|
|
47
|
+
BeforeAll: any;
|
|
48
|
+
AfterAll: any;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
type StepFunctionFixturesArg<
|
|
52
|
+
T extends KeyValue,
|
|
53
|
+
W extends KeyValue
|
|
54
|
+
> = FixturesArg<T, W>;
|
|
55
|
+
type StepFunction<T extends KeyValue, W extends KeyValue> = (
|
|
56
|
+
fixtures: StepFunctionFixturesArg<T, W>,
|
|
57
|
+
...args: any[]
|
|
58
|
+
) => unknown;
|
|
59
|
+
|
|
60
|
+
const { Given, Then, When, Step, And, But } = createBdd();
|
|
61
|
+
|
|
62
|
+
type UserConfig = import('./core/playwright/readConfigFile').UserConfig;
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
UserConfig,
|
|
66
|
+
Given,
|
|
67
|
+
Then,
|
|
68
|
+
When,
|
|
69
|
+
Step,
|
|
70
|
+
And,
|
|
71
|
+
But,
|
|
72
|
+
expect,
|
|
73
|
+
test,
|
|
74
|
+
createBdd,
|
|
75
|
+
Page
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export * from '@playwright/test/types/test';
|
package/build/index.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.When = exports.Then = exports.Step = exports.Given = exports.But = exports.And = void 0;
|
|
7
|
+
Object.defineProperty(exports, "accountLogin", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _index.accountLogin;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "createBdd", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _index.createBdd;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "expect", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _index.expect;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "getDefaultActor", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _index.getDefaultActor;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "getListOfActors", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return _index.getListOfActors;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "getRunMode", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _index.getRunMode;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "getUserForSelectedEditionAndProfile", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _index.getUserForSelectedEditionAndProfile;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(exports, "isCI", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () {
|
|
52
|
+
return _index.isCI;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "isDevelopmentSetup", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () {
|
|
58
|
+
return _index.isDevelopmentSetup;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, "loadCookiesIfPresent", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function () {
|
|
64
|
+
return _index.loadCookiesIfPresent;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
Object.defineProperty(exports, "performLoginSteps", {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
get: function () {
|
|
70
|
+
return _index.performLoginSteps;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
Object.defineProperty(exports, "setup", {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
get: function () {
|
|
76
|
+
return _index.setup;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
Object.defineProperty(exports, "test", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
get: function () {
|
|
82
|
+
return _index.test;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
Object.defineProperty(exports, "verifyIfCookieFileExists", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
get: function () {
|
|
88
|
+
return _index.verifyIfCookieFileExists;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
var _index = require("./core/playwright/index");
|
|
92
|
+
// import { fireEvent, render } from '@testing-library/react';
|
|
93
|
+
|
|
94
|
+
const {
|
|
95
|
+
Given,
|
|
96
|
+
Then,
|
|
97
|
+
When,
|
|
98
|
+
Step
|
|
99
|
+
} = (0, _index.createBdd)();
|
|
100
|
+
exports.Step = Step;
|
|
101
|
+
exports.When = When;
|
|
102
|
+
exports.Then = Then;
|
|
103
|
+
exports.Given = Given;
|
|
104
|
+
const And = exports.And = Then;
|
|
105
|
+
const But = exports.But = Then;
|
package/build/lib/cli.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _testRunner = _interopRequireDefault(require("../core/playwright/test-runner"));
|
|
5
|
+
var _reportGenerator = _interopRequireDefault(require("../core/playwright/report-generator"));
|
|
6
|
+
var _codegen = _interopRequireDefault(require("../core/playwright/codegen"));
|
|
7
|
+
var _logger = require("../utils/logger");
|
|
8
|
+
var _setupProject = _interopRequireDefault(require("../setup-folder-structure/setupProject"));
|
|
9
|
+
var _parser = require("../parser/parser");
|
|
10
|
+
var _clearCaches = _interopRequireDefault(require("../core/playwright/clear-caches"));
|
|
11
|
+
var _helper = _interopRequireDefault(require("../setup-folder-structure/helper"));
|
|
12
|
+
var _parseUserArgs = _interopRequireDefault(require("../core/playwright/helpers/parseUserArgs"));
|
|
13
|
+
var _validateFeature = _interopRequireDefault(require("../core/playwright/validateFeature"));
|
|
14
|
+
// import createJestRunner from '../core/jest/runner/jest-runner';
|
|
15
|
+
|
|
16
|
+
const [,, option, ...otherOptions] = process.argv;
|
|
17
|
+
switch (option) {
|
|
18
|
+
case 'test':
|
|
19
|
+
{
|
|
20
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Running Tests..');
|
|
21
|
+
(0, _testRunner.default)();
|
|
22
|
+
//createJestRunner();
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case 'validate':
|
|
26
|
+
{
|
|
27
|
+
(0, _validateFeature.default)();
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
case 're-run-failed':
|
|
31
|
+
{
|
|
32
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Running Failed Tests..');
|
|
33
|
+
let {
|
|
34
|
+
filePath
|
|
35
|
+
} = (0, _parseUserArgs.default)();
|
|
36
|
+
process.env.isRerunFailedCases = true;
|
|
37
|
+
process.env.filePath = filePath;
|
|
38
|
+
(0, _testRunner.default)();
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case 'report':
|
|
42
|
+
{
|
|
43
|
+
// console.log('\x1b[36mGenerating Reports...\x1b[0m');
|
|
44
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Generating Reports...');
|
|
45
|
+
(0, _reportGenerator.default)();
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
case 'codegen':
|
|
49
|
+
{
|
|
50
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'The purpose of codegen is to assist developer .....');
|
|
51
|
+
(0, _codegen.default)();
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case 'init':
|
|
55
|
+
{
|
|
56
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Initializing projects...');
|
|
57
|
+
(0, _setupProject.default)();
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case 'generateSpecFile':
|
|
61
|
+
{
|
|
62
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Generating Spec file...');
|
|
63
|
+
(0, _parser.generateSpecCodeForFeatureFile)(otherOptions);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case 'clearCaches':
|
|
67
|
+
{
|
|
68
|
+
_logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Clearing caches...');
|
|
69
|
+
(0, _clearCaches.default)();
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case 'help':
|
|
73
|
+
default:
|
|
74
|
+
{
|
|
75
|
+
(0, _helper.default)();
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _path = _interopRequireDefault(require("path"));
|
|
5
|
+
var _child_process = require("child_process");
|
|
6
|
+
var _logger = require("../utils/logger");
|
|
7
|
+
var _rootPath = require("../utils/rootPath");
|
|
8
|
+
// We are skipping the download of browsers when NODE_ENV is set to production or flag SKIP_BROWSER_DOWNLOAD is set to true
|
|
9
|
+
|
|
10
|
+
let isSkipDownloadingBrowsers = Boolean(process.env.SKIP_BROWSER_DOWNLOAD);
|
|
11
|
+
let isProductionMode = process.env.NODE_ENV === 'production';
|
|
12
|
+
if (isSkipDownloadingBrowsers || isProductionMode) {
|
|
13
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, 'Skipping browsers download in production mode');
|
|
14
|
+
} else {
|
|
15
|
+
const playwrightPath = _path.default.resolve((0, _rootPath.getExecutableBinaryPath)('playwright'));
|
|
16
|
+
const command = playwrightPath;
|
|
17
|
+
const args = ['install'];
|
|
18
|
+
_logger.Logger.log(_logger.Logger.INFO_TYPE, `Downloading browsers for running tests`);
|
|
19
|
+
const childProcess = (0, _child_process.spawn)(command, args, {
|
|
20
|
+
stdio: 'inherit'
|
|
21
|
+
});
|
|
22
|
+
childProcess.on('error', error => {
|
|
23
|
+
_logger.Logger.log(_logger.Logger.FAILURE_TYPE, error);
|
|
24
|
+
});
|
|
25
|
+
}
|