@zohodesk/testinglibrary 0.3.6-experimental → 0.3.7-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.
Files changed (118) hide show
  1. package/README.md +1 -25
  2. package/build/bdd-framework/cli/commands/env.js +42 -0
  3. package/build/bdd-framework/cli/commands/export.js +62 -0
  4. package/build/bdd-framework/cli/commands/test.js +64 -0
  5. package/build/bdd-framework/cli/index.js +11 -0
  6. package/build/bdd-framework/cli/options.js +19 -0
  7. package/build/bdd-framework/cli/worker.js +13 -0
  8. package/build/bdd-framework/config/configDir.js +35 -0
  9. package/build/bdd-framework/config/enrichReporterData.js +23 -0
  10. package/build/bdd-framework/config/env.js +50 -0
  11. package/build/bdd-framework/config/index.js +94 -0
  12. package/build/bdd-framework/config/lang.js +14 -0
  13. package/build/bdd-framework/cucumber/buildStepDefinition.js +43 -0
  14. package/build/bdd-framework/cucumber/createTestStep.js +43 -0
  15. package/build/bdd-framework/cucumber/formatter/EventDataCollector.js +126 -0
  16. package/build/bdd-framework/cucumber/formatter/GherkinDocumentParser.js +72 -0
  17. package/build/bdd-framework/cucumber/formatter/PickleParser.js +25 -0
  18. package/build/bdd-framework/cucumber/formatter/durationHelpers.js +13 -0
  19. package/build/bdd-framework/cucumber/formatter/getColorFns.js +57 -0
  20. package/build/bdd-framework/cucumber/formatter/index.js +16 -0
  21. package/build/bdd-framework/cucumber/formatter/locationHelpers.js +16 -0
  22. package/build/bdd-framework/cucumber/loadConfig.js +17 -0
  23. package/build/bdd-framework/cucumber/loadFeatures.js +70 -0
  24. package/build/bdd-framework/cucumber/loadSnippetBuilder.js +20 -0
  25. package/build/bdd-framework/cucumber/loadSteps.js +47 -0
  26. package/build/bdd-framework/cucumber/resolveFeaturePaths.js +62 -0
  27. package/build/bdd-framework/cucumber/stepArguments.js +21 -0
  28. package/build/bdd-framework/cucumber/types.js +5 -0
  29. package/build/bdd-framework/cucumber/valueChecker.js +23 -0
  30. package/build/bdd-framework/decorators.js +18 -0
  31. package/build/bdd-framework/gen/fixtures.js +48 -0
  32. package/build/bdd-framework/gen/formatter.js +167 -0
  33. package/build/bdd-framework/gen/i18n.js +39 -0
  34. package/build/bdd-framework/gen/index.js +197 -0
  35. package/build/bdd-framework/gen/specialTags.js +70 -0
  36. package/build/bdd-framework/gen/testFile.js +470 -0
  37. package/build/bdd-framework/gen/testMeta.js +60 -0
  38. package/build/bdd-framework/gen/testNode.js +35 -0
  39. package/build/bdd-framework/gen/testPoms.js +133 -0
  40. package/build/bdd-framework/hooks/scenario.js +130 -0
  41. package/build/bdd-framework/hooks/worker.js +89 -0
  42. package/build/bdd-framework/index.js +52 -0
  43. package/build/bdd-framework/playwright/fixtureParameterNames.js +93 -0
  44. package/build/bdd-framework/playwright/getLocationInFile.js +79 -0
  45. package/build/bdd-framework/playwright/loadConfig.js +42 -0
  46. package/build/bdd-framework/playwright/loadUtils.js +33 -0
  47. package/build/bdd-framework/playwright/testTypeImpl.js +79 -0
  48. package/build/bdd-framework/playwright/transform.js +88 -0
  49. package/build/bdd-framework/playwright/types.js +12 -0
  50. package/build/bdd-framework/playwright/utils.js +56 -0
  51. package/build/bdd-framework/reporter/cucumber/base.js +52 -0
  52. package/build/bdd-framework/reporter/cucumber/custom.js +73 -0
  53. package/build/bdd-framework/reporter/cucumber/helper.js +12 -0
  54. package/build/bdd-framework/reporter/cucumber/html.js +40 -0
  55. package/build/bdd-framework/reporter/cucumber/index.js +74 -0
  56. package/build/bdd-framework/reporter/cucumber/json.js +312 -0
  57. package/build/bdd-framework/reporter/cucumber/junit.js +205 -0
  58. package/build/bdd-framework/reporter/cucumber/message.js +20 -0
  59. package/build/bdd-framework/reporter/cucumber/messagesBuilder/AttachmentMapper.js +82 -0
  60. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +197 -0
  61. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocument.js +43 -0
  62. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocumentClone.js +52 -0
  63. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocuments.js +105 -0
  64. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Hook.js +70 -0
  65. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Meta.js +45 -0
  66. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Pickles.js +27 -0
  67. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Projects.js +38 -0
  68. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCase.js +128 -0
  69. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRun.js +154 -0
  70. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +123 -0
  71. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +67 -0
  72. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +114 -0
  73. package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +30 -0
  74. package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwStepUtils.js +70 -0
  75. package/build/bdd-framework/reporter/cucumber/messagesBuilder/timing.js +35 -0
  76. package/build/bdd-framework/reporter/cucumber/messagesBuilder/types.js +5 -0
  77. package/build/bdd-framework/run/StepInvoker.js +69 -0
  78. package/build/bdd-framework/run/bddData/index.js +59 -0
  79. package/build/bdd-framework/run/bddData/types.js +5 -0
  80. package/build/bdd-framework/run/bddFixtures.js +192 -0
  81. package/build/bdd-framework/run/bddWorld.js +79 -0
  82. package/build/bdd-framework/run/bddWorldInternal.js +11 -0
  83. package/build/bdd-framework/snippets/index.js +132 -0
  84. package/build/bdd-framework/snippets/snippetSyntax.js +43 -0
  85. package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +26 -0
  86. package/build/bdd-framework/snippets/snippetSyntaxTs.js +18 -0
  87. package/build/bdd-framework/stepDefinitions/createBdd.js +66 -0
  88. package/build/bdd-framework/stepDefinitions/decorators/class.js +68 -0
  89. package/build/bdd-framework/stepDefinitions/decorators/steps.js +99 -0
  90. package/build/bdd-framework/stepDefinitions/defineStep.js +62 -0
  91. package/build/bdd-framework/stepDefinitions/stepConfig.js +24 -0
  92. package/build/bdd-framework/steps/createBdd.js +78 -0
  93. package/build/bdd-framework/steps/decorators/class.js +68 -0
  94. package/build/bdd-framework/steps/decorators/steps.js +98 -0
  95. package/build/bdd-framework/steps/defineStep.js +62 -0
  96. package/build/bdd-framework/steps/stepConfig.js +24 -0
  97. package/build/bdd-framework/utils/AutofillMap.js +20 -0
  98. package/build/bdd-framework/utils/exit.js +62 -0
  99. package/build/bdd-framework/utils/index.js +93 -0
  100. package/build/bdd-framework/utils/jsStringWrap.js +44 -0
  101. package/build/bdd-framework/utils/logger.js +30 -0
  102. package/build/bdd-framework/utils/stripAnsiEscapes.js +20 -0
  103. package/build/core/playwright/builtInFixtures/page.js +1 -1
  104. package/build/core/playwright/configuration/ConfigurationHelper.js +2 -9
  105. package/build/core/playwright/env-initializer.js +0 -1
  106. package/build/core/playwright/helpers/auth/getUsers.js +23 -11
  107. package/build/core/playwright/helpers/configFileNameProvider.js +9 -3
  108. package/build/core/playwright/index.js +23 -10
  109. package/build/core/playwright/readConfigFile.js +7 -12
  110. package/build/core/playwright/setup/config-creator.js +3 -3
  111. package/build/core/playwright/setup/config-utils.js +25 -8
  112. package/build/core/playwright/test-runner.js +5 -4
  113. package/build/decorators.d.ts +1 -1
  114. package/build/decorators.js +1 -1
  115. package/build/test/core/playwright/helpers/__tests__/configFileNameProvider.test.js +34 -0
  116. package/npm-shrinkwrap.json +2175 -5825
  117. package/package.json +5 -6
  118. package/build/core/playwright/fixtures.js +0 -24
@@ -33,12 +33,17 @@ function getDefaultActorConf() {
33
33
  const {
34
34
  uatDirectory
35
35
  } = (0, _readConfigFile.generateConfigFromFile)();
36
- const defaultSettingFile = `conf/${getRunMode()}/settings.json`;
37
- const filePath = _path.default.join(uatDirectory, defaultSettingFile);
38
- if (!(0, _fs.existsSync)(filePath)) {
39
- throw new Error(`${defaultSettingFile} is missing.`);
36
+ const modeSettingsFile = `conf/${getRunMode()}/settings.json`;
37
+ const filePath = _path.default.join(uatDirectory, modeSettingsFile);
38
+ try {
39
+ if (!(0, _fs.existsSync)(filePath)) {
40
+ const defaultSettingsFile = _path.default.join(uatDirectory, `conf/default/settings.json`);
41
+ return require(defaultSettingsFile);
42
+ }
43
+ return require(filePath);
44
+ } catch (error) {
45
+ throw new Error(`${defaultSettingFile} ${filePath} both files are missing.`);
40
46
  }
41
- return require(filePath);
42
47
  }
43
48
  function getDefaultActor() {
44
49
  const {
@@ -52,18 +57,25 @@ function getListOfActors() {
52
57
  uatDirectory
53
58
  } = (0, _readConfigFile.generateConfigFromFile)();
54
59
  const mode = getRunMode();
55
- const configFile = `conf/${mode}/actors/index`;
56
- const filePath = _path.default.join(uatDirectory, configFile);
57
- if (!(0, _fs.existsSync)(filePath + '.js')) {
58
- throw new Error(`${configFile}.js is missing.`);
60
+ let configFile = _path.default.join(uatDirectory, `conf/${mode}/actors/index.js`);
61
+ if (!(0, _fs.existsSync)(configFile)) {
62
+ configFile = _path.default.join(uatDirectory, `conf/default/actors/index.js`);
63
+ }
64
+ try {
65
+ return require(configFile);
66
+ } catch (error) {
67
+ throw new Error(`Error loading actor configuration from ${configFile}`);
59
68
  }
60
- return require(filePath);
61
69
  }
62
70
  function getUserForSelectedEditionAndProfile(preferedEdition, preferredProfile, betaFeature, testDataPortal = null) {
71
+ const actorsData = getListOfActors();
72
+ if (!actorsData || !actorsData.editions) {
73
+ throw new Error("The actors data is missing.");
74
+ }
63
75
  const {
64
76
  editions: userdata,
65
77
  beta: betaPortals
66
- } = getListOfActors();
78
+ } = actorsData;
67
79
  const defaultConf = getDefaultActorConf();
68
80
  const edition = preferedEdition || defaultConf.edition;
69
81
  const profile = preferredProfile || defaultConf.profile;
@@ -9,8 +9,14 @@ exports.getReportFileName = getReportFileName;
9
9
  exports.getUATFileName = getUATFileName;
10
10
  var _path = _interopRequireDefault(require("path"));
11
11
  var _fs = _interopRequireDefault(require("fs"));
12
- function getUATFileName() {
13
- return 'uat.config.js';
12
+ var _auth = require("./auth");
13
+ function getUATFileName(mode) {
14
+ mode = mode || (0, _auth.getRunMode)();
15
+ const uatConfFilePath = _path.default.resolve(process.cwd(), `uat/conf/${mode}/uat.config.js`);
16
+ if (_fs.default.existsSync(uatConfFilePath)) {
17
+ return uatConfFilePath;
18
+ }
19
+ return _path.default.resolve(process.cwd(), `uat.config.js`);
14
20
  }
15
21
  function getEnvConfigFilePath(mode) {
16
22
  const confFilePath = _path.default.resolve(process.cwd(), `uat/conf/${mode}/settings.json`);
@@ -18,7 +24,7 @@ function getEnvConfigFilePath(mode) {
18
24
  if (_fs.default.existsSync(confFilePath)) {
19
25
  return `uat/conf/${mode}/settings.json`;
20
26
  }
21
- return `uat/env-config.json`;
27
+ return `uat/conf/default/settings.json`;
22
28
  }
23
29
  function getReportFileName() {
24
30
  return `test-summary.json`;
@@ -1,24 +1,37 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.createBdd = void 0;
7
- Object.defineProperty(exports, "expect", {
7
+ Object.defineProperty(exports, "createBdd", {
8
8
  enumerable: true,
9
9
  get: function () {
10
- return _test.expect;
10
+ return _bddFramework.createBdd;
11
11
  }
12
12
  });
13
- Object.defineProperty(exports, "test", {
13
+ Object.defineProperty(exports, "expect", {
14
14
  enumerable: true,
15
15
  get: function () {
16
- return _playwrightBdd.test;
16
+ return _test.expect;
17
17
  }
18
18
  });
19
- var _playwrightBdd = require("playwright-bdd");
19
+ exports.test = void 0;
20
+ var _bddFramework = require("../../bdd-framework");
20
21
  var _test = require("@playwright/test");
21
- let createBdd = function () {
22
- return (0, _playwrightBdd.createBdd)(_playwrightBdd.test);
23
- };
24
- exports.createBdd = createBdd;
22
+ var _readConfigFile = require("./readConfigFile");
23
+ var _builtInFixtures = _interopRequireDefault(require("./builtInFixtures"));
24
+ var _getUserFixtures = _interopRequireDefault(require("./helpers/getUserFixtures"));
25
+ const {
26
+ bddMode
27
+ } = (0, _readConfigFile.generateConfigFromFile)();
28
+ let base = bddMode ? _bddFramework.test : _test.test;
29
+ const buildInFixtures = (0, _builtInFixtures.default)(bddMode);
30
+ const buildInFixturesTest = base.extend({
31
+ ...buildInFixtures
32
+ });
33
+ const userFixtures = (0, _getUserFixtures.default)();
34
+ const userFixturesTest = base.extend({
35
+ ...userFixtures
36
+ });
37
+ const test = exports.test = (0, _test.mergeTests)(buildInFixturesTest, userFixturesTest);
@@ -13,7 +13,6 @@ var _path = _interopRequireDefault(require("path"));
13
13
  var _logger = require("../../utils/logger");
14
14
  var _configFileNameProvider = require("./helpers/configFileNameProvider");
15
15
  var _mergeObjects = require("./helpers/mergeObjects");
16
- var _Configuration = require("./configuration/Configuration");
17
16
  let cachedConfig = null;
18
17
  function getDefaultConfig() {
19
18
  return {
@@ -34,26 +33,18 @@ function getDefaultConfig() {
34
33
  height: 720
35
34
  },
36
35
  debug: false,
37
- mode: process.env.mode || 'dev',
36
+ testIdAttribute: 'data-testid',
38
37
  additionalPages: {},
39
38
  featureFilesFolder: 'feature-files',
40
39
  stepDefinitionsFolder: 'steps',
41
- testIdAttribute: 'data-testid',
42
40
  testSetup: {},
43
41
  editionOrder: ['Free', 'Express', 'Standard', 'Professional', 'Enterprise']
44
42
  };
45
43
  }
46
- function checkForDeprecatedKeys(configKey) {
47
- let deprecatedConfigInUatConfigFile = ['mode'];
48
- if (deprecatedConfigInUatConfigFile.includes(configKey)) {
49
- _logger.Logger.log(_logger.Logger.INFO_TYPE, `key ${configKey} is deprecated. Please use other options`);
50
- }
51
- }
52
44
  function combineDefaultConfigWithUserConfig(userConfiguration) {
53
45
  let defaultConfig = getDefaultConfig();
54
46
  let configurationObj = {};
55
47
  Object.keys(userConfiguration).forEach(configKey => {
56
- checkForDeprecatedKeys(configKey);
57
48
  let configValue = userConfiguration[configKey];
58
49
  if (configValue !== null && configValue !== undefined) {
59
50
  configurationObj[configKey] = configValue;
@@ -112,11 +103,15 @@ function combineDefaultConfigWithUserConfig(userConfiguration) {
112
103
  *
113
104
  * @returns {UserConfig}
114
105
  */
106
+
107
+ function getConfigFilePath() {
108
+ return _path.default.resolve(process.cwd(), (0, _configFileNameProvider.getUATFileName)());
109
+ }
115
110
  function generateConfigFromFile() {
116
111
  if (cachedConfig !== null) {
117
112
  return cachedConfig; // If cached, return the cached configuration
118
113
  }
119
- const filePath = _path.default.resolve(process.cwd(), (0, _configFileNameProvider.getUATFileName)());
114
+ const filePath = getConfigFilePath();
120
115
  if ((0, _fs.existsSync)(filePath)) {
121
116
  /** @type {UserConfig} */
122
117
  const config = require(filePath);
@@ -127,7 +122,7 @@ function generateConfigFromFile() {
127
122
  return {};
128
123
  }
129
124
  function isUserConfigFileAvailable() {
130
- const filePath = _path.default.resolve(process.cwd(), (0, _configFileNameProvider.getUATFileName)());
125
+ const filePath = getConfigFilePath();
131
126
  if ((0, _fs.existsSync)(filePath)) {
132
127
  return true;
133
128
  }
@@ -38,12 +38,12 @@ const testDir = (0, _configUtils.getTestDir)(bddMode, process.cwd(), {
38
38
  featureFilesFolder,
39
39
  stepDefinitionsFolder
40
40
  });
41
- const use = {
41
+ const testOptions = (0, _configUtils.getTestUseOptions)({
42
42
  trace,
43
43
  video,
44
44
  viewport,
45
45
  testIdAttribute
46
- };
46
+ });
47
47
 
48
48
  /**
49
49
  * Playwright configuration object
@@ -66,7 +66,7 @@ function getPlaywrightConfig() {
66
66
  expect: {
67
67
  timeout: expectTimeout
68
68
  },
69
- use,
69
+ use: testOptions,
70
70
  projects: isAuthMode ? [{
71
71
  name: 'setup',
72
72
  testMatch: /.*\.setup\.js/,
@@ -7,12 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.getBrowsersList = getBrowsersList;
8
8
  exports.getProjects = getProjects;
9
9
  exports.getTestDir = getTestDir;
10
+ exports.getTestUseOptions = getTestUseOptions;
10
11
  var _test = require("@playwright/test");
11
12
  var _path = _interopRequireDefault(require("path"));
12
13
  var _readConfigFile = require("../readConfigFile");
13
- var _playwrightBdd = require("playwright-bdd");
14
+ var _bddFramework = require("../../../bdd-framework");
14
15
  var _logger = require("../../../utils/logger");
15
16
  var _browserTypes = require("../constants/browserTypes");
17
+ var _configFileNameProvider = require("../helpers/configFileNameProvider");
16
18
  var _fileUtils = require("../../../utils/fileUtils");
17
19
  /**
18
20
  ** Playwright project configuration
@@ -146,15 +148,30 @@ function getPathsForFeatureFiles(cwd) {
146
148
  function getTestDir(bddMode, cwd, {
147
149
  stepDefinitionsFolder
148
150
  }) {
149
- return bddMode ? (0, _playwrightBdd.defineBddConfig)({
150
- features: getPathsForFeatureFiles(cwd),
151
- steps: [_path.default.join(cwd, 'uat', '**', stepDefinitionsFolder, '*.spec.js'), require.resolve('../fixtures.js')],
152
- importTestFrom: require.resolve('../fixtures.js'),
151
+ return bddMode ? (0, _bddFramework.defineBddConfig)({
152
+ paths: getPathsForFeatureFiles(cwd),
153
+ import: [_path.default.join(cwd, 'uat', '**', stepDefinitionsFolder, '*.spec.js')],
153
154
  featuresRoot: _path.default.join(cwd, 'uat'),
154
155
  outputDir: _path.default.join(cwd, 'uat', '.features-gen'),
155
- disableWarnings: {
156
- importTestFrom: true
157
- },
158
156
  publish: true
159
157
  }) : _path.default.join(cwd, 'uat');
158
+ }
159
+ function getTestUseOptions({
160
+ viewport,
161
+ trace,
162
+ video,
163
+ testIdAttribute
164
+ }) {
165
+ let defaultTestuseOptions = {
166
+ viewport,
167
+ testIdAttribute,
168
+ trace: trace ? 'on' : 'off',
169
+ video: video ? {
170
+ mode: 'on',
171
+ size: {
172
+ ...viewport
173
+ }
174
+ } : 'off'
175
+ };
176
+ return defaultTestuseOptions;
160
177
  }
@@ -42,7 +42,7 @@ function getPlaywrightArgs(userArgsObject, debug, bddMode, tagArgs, headless) {
42
42
  }
43
43
  function runPreprocessing(tagArgs, configPath) {
44
44
  const beforeCommand = 'node';
45
- const bddGenPath = _path.default.resolve((0, _rootPath.getExecutableBinaryPath)('bddgen'));
45
+ const bddGenPath = _path.default.resolve(__dirname, '../', '../', 'bdd-framework', 'cli', 'index.js');
46
46
  const beforeArgs = [bddGenPath, '-c', configPath];
47
47
  if (tagArgs) {
48
48
  beforeArgs.push('--tags');
@@ -103,15 +103,16 @@ function main() {
103
103
  const uatConfig = new _Configuration.default((0, _readConfigFile.getDefaultConfig)());
104
104
 
105
105
  // overriding the application config's from project
106
- uatConfig.addAll(new _Configuration.default((0, _ConfigurationHelper.getApplicationConfig)()));
107
106
 
108
- // overriding the user config's from CLI
109
107
  const userArgConfig = new _Configuration.default(_UserArgs.default.parseToObject(process.argv.slice(2)));
108
+ const mode = userArgConfig.get("mode");
109
+ uatConfig.addAll(new _Configuration.default((0, _ConfigurationHelper.getApplicationConfig)(mode)));
110
+
111
+ // overriding the user config's from CLI
110
112
  uatConfig.addAll(userArgConfig);
111
113
  const {
112
114
  isAuthMode,
113
115
  editionOrder,
114
- mode,
115
116
  debug,
116
117
  bddMode = false,
117
118
  headless = false
@@ -1 +1 @@
1
- export * from 'playwright-bdd/decorators';
1
+ export * from './bdd-framework/decorators';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _decorators = require("playwright-bdd/decorators");
6
+ var _decorators = require("./bdd-framework/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;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _fs = require("fs");
5
+ var _path = _interopRequireDefault(require("path"));
6
+ var _configFileNameProvider = require("../../../../../core/playwright/helpers/configFileNameProvider");
7
+ jest.mock('fs');
8
+ jest.mock('path');
9
+ const mockCwd = '/mock/current/directory';
10
+ _path.default.resolve = jest.fn();
11
+ process.cwd = jest.fn(() => mockCwd);
12
+ describe('getUATFileName', () => {
13
+ beforeEach(() => {
14
+ jest.clearAllMocks();
15
+ });
16
+ test('return the pipeline matched config files for pipeline matched files exists', () => {
17
+ const mode = 'cd';
18
+ const mockPath = `${mockCwd}/uat/conf/${mode}/uat.config.js`;
19
+ _fs.existsSync.mockReturnValue(true);
20
+ _path.default.resolve.mockImplementation((...args) => args.join('/'));
21
+ const result = (0, _configFileNameProvider.getUATFileName)(mode);
22
+ expect(_fs.existsSync).toHaveBeenCalledWith(mockPath);
23
+ expect(result).toBe(mockPath);
24
+ });
25
+ test('return the default config files for pipeline matched files not exists', () => {
26
+ const mode = 'ci';
27
+ const defaultPath = `${mockCwd}/uat.config.js`;
28
+ _fs.existsSync.mockReturnValue(false);
29
+ _path.default.resolve.mockImplementation((...args) => args.join('/'));
30
+ const result = (0, _configFileNameProvider.getUATFileName)(mode);
31
+ expect(_fs.existsSync).toHaveBeenCalledWith(`${mockCwd}/uat/conf/${mode}/uat.config.js`);
32
+ expect(result).toBe(defaultPath);
33
+ });
34
+ });