dceky 1.1.0 → 1.1.2
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/docs/commands.html +961 -0
- package/genDocs/index.ts +322 -0
- package/lib/genDocs/index.d.ts +1 -0
- package/lib/genDocs/index.js +285 -0
- package/lib/genDocs/index.js.map +1 -0
- package/lib/postinstall/helpers/getRootPath.js +3 -3
- package/lib/postinstall/helpers/getRootPath.js.map +1 -1
- package/lib/postinstall/index.js +6 -6
- package/lib/postinstall/index.js.map +1 -1
- package/lib/preinstall/helpers/getRootPath.js +3 -3
- package/lib/preinstall/helpers/getRootPath.js.map +1 -1
- package/lib/preinstall/index.js +6 -6
- package/lib/preinstall/index.js.map +1 -1
- package/lib/setup/addToGitIgnore.js +13 -13
- package/lib/setup/addToGitIgnore.js.map +1 -1
- package/lib/setup/checkRequiredFiles/genEmptyGlobalFile.js +12 -12
- package/lib/setup/checkRequiredFiles/genEmptyGlobalFile.js.map +1 -1
- package/lib/setup/checkRequiredFiles/genEmptyProfileFile.js +12 -12
- package/lib/setup/checkRequiredFiles/genEmptyProfileFile.js.map +1 -1
- package/lib/setup/checkRequiredFiles/genExampleTest.js +8 -8
- package/lib/setup/checkRequiredFiles/genExampleTest.js.map +1 -1
- package/lib/setup/checkRequiredFiles/index.js +21 -21
- package/lib/setup/checkRequiredFiles/index.js.map +1 -1
- package/lib/setup/genCommandImportFile.js +24 -24
- package/lib/setup/genCommandImportFile.js.map +1 -1
- package/lib/setup/genDynamicConfigFile.js +8 -8
- package/lib/setup/genDynamicConfigFile.js.map +1 -1
- package/lib/setup/genE2ELaunchFile.js +9 -9
- package/lib/setup/genE2ELaunchFile.js.map +1 -1
- package/lib/setup/genKyCommandDeclarations.js +24 -24
- package/lib/setup/genKyCommandDeclarations.js.map +1 -1
- package/lib/setup/genTsConfigFile.d.ts +6 -0
- package/lib/setup/genTsConfigFile.js +51 -0
- package/lib/setup/genTsConfigFile.js.map +1 -0
- package/lib/setup/helpers/getRootPath.js +3 -3
- package/lib/setup/helpers/getRootPath.js.map +1 -1
- package/lib/setup/index.js +9 -7
- package/lib/setup/index.js.map +1 -1
- package/lib/setup/setupCypressDependencies.js +11 -11
- package/lib/setup/setupCypressDependencies.js.map +1 -1
- package/lib/src/commands/assertDoesNotHaveClass.js +3 -3
- package/lib/src/commands/assertDoesNotHaveClass.js.map +1 -1
- package/lib/src/commands/assertHasClass.js +3 -3
- package/lib/src/commands/assertHasClass.js.map +1 -1
- package/lib/src/commands/assertNumElements.js +3 -3
- package/lib/src/commands/assertNumElements.js.map +1 -1
- package/lib/src/commands/checkIfElementExists.js +3 -3
- package/lib/src/commands/checkIfElementExists.js.map +1 -1
- package/lib/src/commands/extractDataFromClass.js +8 -8
- package/lib/src/commands/extractDataFromClass.js.map +1 -1
- package/lib/src/commands/extractDataFromClassByContents.js +8 -8
- package/lib/src/commands/extractDataFromClassByContents.js.map +1 -1
- package/lib/src/commands/genTextOfLength.js +6 -6
- package/lib/src/commands/genTextOfLength.js.map +1 -1
- package/lib/src/commands/getAttribute.js +4 -4
- package/lib/src/commands/getAttribute.js.map +1 -1
- package/lib/src/commands/getClassName.js +3 -3
- package/lib/src/commands/getClassName.js.map +1 -1
- package/lib/src/commands/getCredentialValue.d.ts +1 -3
- package/lib/src/commands/getCredentialValue.js +3 -4
- package/lib/src/commands/getCredentialValue.js.map +1 -1
- package/lib/src/commands/getCredentialValues.js +2 -2
- package/lib/src/commands/getCredentialValues.js.map +1 -1
- package/lib/src/commands/getCurrentDateInfo.js +4 -4
- package/lib/src/commands/getCurrentDateInfo.js.map +1 -1
- package/lib/src/commands/getId.js +3 -3
- package/lib/src/commands/getId.js.map +1 -1
- package/lib/src/commands/getJSON.js +2 -2
- package/lib/src/commands/getJSON.js.map +1 -1
- package/lib/src/commands/getNumElements.js +4 -4
- package/lib/src/commands/getNumElements.js.map +1 -1
- package/lib/src/commands/getProfileValue.d.ts +2 -1
- package/lib/src/commands/getProfileValue.js +1 -1
- package/lib/src/commands/getProfileValue.js.map +1 -1
- package/lib/src/commands/getSpecialChars.js +2 -2
- package/lib/src/commands/getSpecialChars.js.map +1 -1
- package/lib/src/commands/getTitle.js +3 -3
- package/lib/src/commands/getTitle.js.map +1 -1
- package/lib/src/commands/handleHarvardKey.js +12 -12
- package/lib/src/commands/handleHarvardKey.js.map +1 -1
- package/lib/src/commands/helpers/getFormData.js +13 -13
- package/lib/src/commands/helpers/getFormData.js.map +1 -1
- package/lib/src/commands/index.js +34 -34
- package/lib/src/commands/index.js.map +1 -1
- package/lib/src/commands/launchAs.js +25 -26
- package/lib/src/commands/launchAs.js.map +1 -1
- package/lib/src/commands/listSelectLabels.js +6 -6
- package/lib/src/commands/listSelectLabels.js.map +1 -1
- package/lib/src/commands/listSelectValues.js +7 -7
- package/lib/src/commands/listSelectValues.js.map +1 -1
- package/lib/src/commands/logIntoPorta.js +21 -31
- package/lib/src/commands/logIntoPorta.js.map +1 -1
- package/lib/src/commands/navigateToHref.js +7 -7
- package/lib/src/commands/navigateToHref.js.map +1 -1
- package/lib/src/commands/padWithZeros.js +6 -6
- package/lib/src/commands/padWithZeros.js.map +1 -1
- package/lib/src/commands/runScript.js +4 -4
- package/lib/src/commands/runScript.js.map +1 -1
- package/lib/src/commands/tap.js +2 -2
- package/lib/src/commands/tap.js.map +1 -1
- package/lib/src/commands/tapInIFrame.js +2 -2
- package/lib/src/commands/tapInIFrame.js.map +1 -1
- package/lib/src/commands/typeInto.js +9 -9
- package/lib/src/commands/typeInto.js.map +1 -1
- package/lib/src/commands/uniquify.js +7 -7
- package/lib/src/commands/uniquify.js.map +1 -1
- package/lib/src/commands/visitCanvasEndpoint.js +7 -18
- package/lib/src/commands/visitCanvasEndpoint.js.map +1 -1
- package/lib/src/commands/waitForAtLeastOneElementPresent.js +9 -9
- package/lib/src/commands/waitForAtLeastOneElementPresent.js.map +1 -1
- package/lib/src/commands/waitForElementVisible.js +4 -4
- package/lib/src/commands/waitForElementVisible.js.map +1 -1
- package/lib/src/genConfiguration/helpers/getRootPath.js +3 -3
- package/lib/src/genConfiguration/helpers/getRootPath.js.map +1 -1
- package/lib/src/genConfiguration/helpers/resolveDependents.js +8 -9
- package/lib/src/genConfiguration/helpers/resolveDependents.js.map +1 -1
- package/lib/src/genConfiguration/helpers/splitEnv.js +5 -6
- package/lib/src/genConfiguration/helpers/splitEnv.js.map +1 -1
- package/lib/src/genConfiguration/index.js +36 -44
- package/lib/src/genConfiguration/index.js.map +1 -1
- package/lib/src/index.js +1 -1
- package/lib/src/index.js.map +1 -1
- package/lib/start/constants/AVAILABLE_BROWSERS.js +1 -1
- package/lib/start/constants/AVAILABLE_BROWSERS.js.map +1 -1
- package/lib/start/constants/DEFAULT_THREADS_PER_COMBO.js +1 -1
- package/lib/start/constants/DEFAULT_THREADS_PER_COMBO.js.map +1 -1
- package/lib/start/helpers/collectPngFiles.js +8 -9
- package/lib/start/helpers/collectPngFiles.js.map +1 -1
- package/lib/start/helpers/exec.js +2 -2
- package/lib/start/helpers/exec.js.map +1 -1
- package/lib/start/helpers/executeAllHeadlessCombinations.js +58 -89
- package/lib/start/helpers/executeAllHeadlessCombinations.js.map +1 -1
- package/lib/start/helpers/executeCypress.js +32 -73
- package/lib/start/helpers/executeCypress.js.map +1 -1
- package/lib/start/helpers/extractArgValue.js +7 -7
- package/lib/start/helpers/extractArgValue.js.map +1 -1
- package/lib/start/helpers/findProfilesByNames.js +7 -7
- package/lib/start/helpers/findProfilesByNames.js.map +1 -1
- package/lib/start/helpers/generateHtmlReport.js +19 -19
- package/lib/start/helpers/generateHtmlReport.js.map +1 -1
- package/lib/start/helpers/generateReportHomepage.js +49 -68
- package/lib/start/helpers/generateReportHomepage.js.map +1 -1
- package/lib/start/helpers/generateReporterConfig.js +4 -4
- package/lib/start/helpers/generateReporterConfig.js.map +1 -1
- package/lib/start/helpers/getDateLabeledDir.js +17 -17
- package/lib/start/helpers/getDateLabeledDir.js.map +1 -1
- package/lib/start/helpers/getRootPath.js +3 -3
- package/lib/start/helpers/getRootPath.js.map +1 -1
- package/lib/start/helpers/mergeAllReportsAndGenerateHtml.js +29 -29
- package/lib/start/helpers/mergeAllReportsAndGenerateHtml.js.map +1 -1
- package/lib/start/helpers/mergeReports.js +22 -22
- package/lib/start/helpers/mergeReports.js.map +1 -1
- package/lib/start/helpers/parseCommaSeparated.js +3 -3
- package/lib/start/helpers/parseCommaSeparated.js.map +1 -1
- package/lib/start/helpers/print.js +19 -19
- package/lib/start/helpers/print.js.map +1 -1
- package/lib/start/helpers/prompt.js +5 -5
- package/lib/start/helpers/prompt.js.map +1 -1
- package/lib/start/helpers/runCypressHeadless.js +41 -52
- package/lib/start/helpers/runCypressHeadless.js.map +1 -1
- package/lib/start/helpers/runCypressVisible.js +13 -24
- package/lib/start/helpers/runCypressVisible.js.map +1 -1
- package/lib/start/helpers/showChooser.js +27 -38
- package/lib/start/helpers/showChooser.js.map +1 -1
- package/lib/start/helpers/validateBrowsers.js +8 -8
- package/lib/start/helpers/validateBrowsers.js.map +1 -1
- package/lib/start/index.js +58 -60
- package/lib/start/index.js.map +1 -1
- package/package.json +6 -4
- package/setup/genE2ELaunchFile.ts +1 -1
- package/setup/genTsConfigFile.ts +55 -0
- package/setup/index.ts +2 -0
- package/src/commands/getCredentialValue.ts +1 -3
- package/src/commands/getProfileValue.ts +2 -1
- package/src/genConfiguration/index.ts +3 -1
- package/tsconfig.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCypressHeadless.js","sourceRoot":"","sources":["../../../start/helpers/runCypressHeadless.ts"],"names":[],"mappings":";AAAA,+BAA+B
|
|
1
|
+
{"version":3,"file":"runCypressHeadless.js","sourceRoot":"","sources":["../../../start/helpers/runCypressHeadless.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
6
|
/* eslint-disable no-console */
|
|
18
|
-
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
19
8
|
// Import helpers
|
|
20
|
-
|
|
9
|
+
const getRootPath_1 = __importDefault(require("./getRootPath"));
|
|
21
10
|
/**
|
|
22
11
|
* Run Cypress in visible/interactive mode with a profile
|
|
23
12
|
* @author Yuen Ler Chow
|
|
24
13
|
* @param profileName - The profile name to use
|
|
25
14
|
* @returns Promise that resolves when Cypress closes
|
|
26
15
|
*/
|
|
27
|
-
|
|
28
|
-
return new Promise(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
console.log(
|
|
32
|
-
console.log(
|
|
33
|
-
|
|
16
|
+
const runCypressVisible = (profileName) => {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
const root = (0, getRootPath_1.default)();
|
|
19
|
+
const env = Object.assign(Object.assign({}, process.env), { CYPRESS_PROFILE: profileName });
|
|
20
|
+
console.log(`\n🚀 Launching Cypress in interactive mode with profile: ${profileName}`);
|
|
21
|
+
console.log(` CYPRESS_PROFILE=${profileName}\n`);
|
|
22
|
+
const cypressProcess = (0, child_process_1.spawn)('npx', ['cypress', 'open'], {
|
|
34
23
|
cwd: root,
|
|
35
|
-
env
|
|
24
|
+
env,
|
|
36
25
|
stdio: 'inherit',
|
|
37
26
|
shell: true,
|
|
38
27
|
});
|
|
39
|
-
cypressProcess.on('close',
|
|
28
|
+
cypressProcess.on('close', (code) => {
|
|
40
29
|
if (code === 0) {
|
|
41
30
|
resolve();
|
|
42
31
|
}
|
|
43
32
|
else {
|
|
44
|
-
reject(new Error(
|
|
33
|
+
reject(new Error(`Cypress exited with code ${code}`));
|
|
45
34
|
}
|
|
46
35
|
});
|
|
47
|
-
cypressProcess.on('error',
|
|
36
|
+
cypressProcess.on('error', (error) => {
|
|
48
37
|
reject(error);
|
|
49
38
|
});
|
|
50
39
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCypressVisible.js","sourceRoot":"","sources":["../../../start/helpers/runCypressVisible.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runCypressVisible.js","sourceRoot":"","sources":["../../../start/helpers/runCypressVisible.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,iDAAsC;AAEtC,iBAAiB;AACjB,gEAAwC;AAExC;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAiB,EAAE;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAA,qBAAW,GAAE,CAAC;QAC3B,MAAM,GAAG,mCACJ,OAAO,CAAC,GAAG,KACd,eAAe,EAAE,WAAW,GAC7B,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,4DAA4D,WAAW,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,IAAI,CAAC,CAAC;QAElD,MAAM,cAAc,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;YACT,GAAG;YACH,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAClC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
|
|
@@ -1,25 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
6
|
/* eslint-disable no-console */
|
|
18
|
-
|
|
7
|
+
const clear_1 = __importDefault(require("clear"));
|
|
19
8
|
// Import shared helpers
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
const print_1 = __importDefault(require("./print"));
|
|
10
|
+
const prompt_1 = __importDefault(require("./prompt"));
|
|
11
|
+
const parseCommaSeparated_1 = __importDefault(require("./parseCommaSeparated"));
|
|
23
12
|
/**
|
|
24
13
|
* Show a chooser between many options
|
|
25
14
|
* @author Gabe Abrams
|
|
@@ -32,21 +21,21 @@ var parseCommaSeparated_1 = __importDefault(require("./parseCommaSeparated"));
|
|
|
32
21
|
* @param opts.allowMulti if true, allow multiple selections (comma-separated)
|
|
33
22
|
* @returns array of chosen option(s)
|
|
34
23
|
*/
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
const showChooser = (opts) => {
|
|
25
|
+
const { question, options, title, dontClear, allowMulti = false, } = opts;
|
|
37
26
|
// Helper to re-display the chooser after an invalid selection
|
|
38
|
-
|
|
27
|
+
const retryWithMessage = (message) => {
|
|
39
28
|
(0, clear_1.default)();
|
|
40
29
|
print_1.default.title('Invalid Choice');
|
|
41
30
|
console.log(message);
|
|
42
31
|
console.log('');
|
|
43
32
|
print_1.default.enterToContinue();
|
|
44
33
|
return showChooser({
|
|
45
|
-
question
|
|
46
|
-
options
|
|
47
|
-
title
|
|
48
|
-
dontClear
|
|
49
|
-
allowMulti
|
|
34
|
+
question,
|
|
35
|
+
options,
|
|
36
|
+
title,
|
|
37
|
+
dontClear,
|
|
38
|
+
allowMulti,
|
|
50
39
|
});
|
|
51
40
|
};
|
|
52
41
|
// Print the header
|
|
@@ -59,36 +48,36 @@ var showChooser = function (opts) {
|
|
|
59
48
|
}
|
|
60
49
|
print_1.default.subtitle(question);
|
|
61
50
|
// Make sure all options have tags
|
|
62
|
-
|
|
63
|
-
|
|
51
|
+
let nextNumber = 1;
|
|
52
|
+
const optionsWithTags = options.map((option) => {
|
|
64
53
|
// Get/generate a tag
|
|
65
|
-
|
|
54
|
+
let { tag } = option;
|
|
66
55
|
if (!tag) {
|
|
67
56
|
tag = String(nextNumber);
|
|
68
57
|
nextNumber += 1;
|
|
69
58
|
}
|
|
70
59
|
// Return complete option
|
|
71
|
-
return
|
|
60
|
+
return Object.assign(Object.assign({}, option), { tag });
|
|
72
61
|
});
|
|
73
62
|
// Print options
|
|
74
|
-
optionsWithTags.forEach(
|
|
75
|
-
console.log(
|
|
63
|
+
optionsWithTags.forEach((option) => {
|
|
64
|
+
console.log(`${option.tag} - ${option.description}`);
|
|
76
65
|
});
|
|
77
66
|
// Ask user to choose
|
|
78
|
-
|
|
67
|
+
const response = (0, prompt_1.default)('> ').trim();
|
|
79
68
|
// Always parse as comma-separated (treat all inputs with multi-select logic)
|
|
80
|
-
|
|
69
|
+
const selectedTags = (0, parseCommaSeparated_1.default)(response);
|
|
81
70
|
// Fail fast if multi-select is not allowed but multiple selections were made
|
|
82
71
|
if (!allowMulti && selectedTags.length > 1) {
|
|
83
72
|
return retryWithMessage('Multiple selections are not allowed. Please select only one option.');
|
|
84
73
|
}
|
|
85
74
|
// Find matching options
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
selectedTags.forEach(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
optionsWithTags.forEach(
|
|
75
|
+
const selected = [];
|
|
76
|
+
const invalidTags = [];
|
|
77
|
+
selectedTags.forEach((tag) => {
|
|
78
|
+
const lowerTag = tag.toLowerCase();
|
|
79
|
+
let found = false;
|
|
80
|
+
optionsWithTags.forEach((opt, idx) => {
|
|
92
81
|
if (opt.tag.toLowerCase() === lowerTag) {
|
|
93
82
|
selected.push({
|
|
94
83
|
description: opt.description,
|
|
@@ -104,7 +93,7 @@ var showChooser = function (opts) {
|
|
|
104
93
|
});
|
|
105
94
|
// Handle invalid tags
|
|
106
95
|
if (invalidTags.length > 0) {
|
|
107
|
-
return retryWithMessage(
|
|
96
|
+
return retryWithMessage(`The following selections are not valid: ${invalidTags.join(', ')}`);
|
|
108
97
|
}
|
|
109
98
|
// Handle no selections
|
|
110
99
|
if (selected.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showChooser.js","sourceRoot":"","sources":["../../../start/helpers/showChooser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"showChooser.js","sourceRoot":"","sources":["../../../start/helpers/showChooser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,21 +4,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
/* eslint-disable no-console */
|
|
7
|
-
|
|
7
|
+
const AVAILABLE_BROWSERS_1 = __importDefault(require("../constants/AVAILABLE_BROWSERS"));
|
|
8
8
|
/**
|
|
9
9
|
* Validate browsers (supports multiple)
|
|
10
10
|
* @author Yuen Ler Chow
|
|
11
11
|
* @param browserNames array of browser names to validate
|
|
12
12
|
* @returns array of valid browser names (lowercased)
|
|
13
13
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const validateBrowsers = (browserNames) => {
|
|
15
|
+
const valid = [];
|
|
16
|
+
const invalid = [];
|
|
17
17
|
// Convert all browser names to lowercase for comparison
|
|
18
|
-
|
|
18
|
+
const lowercaseBrowserNames = browserNames.map((browser) => { return browser.toLowerCase(); });
|
|
19
19
|
// Validate each browser
|
|
20
|
-
lowercaseBrowserNames.forEach(
|
|
21
|
-
if (AVAILABLE_BROWSERS_1.default.some(
|
|
20
|
+
lowercaseBrowserNames.forEach((browser) => {
|
|
21
|
+
if (AVAILABLE_BROWSERS_1.default.some((b) => { return b.name.toLowerCase() === browser.toLowerCase(); })) {
|
|
22
22
|
valid.push(browser);
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
@@ -27,7 +27,7 @@ var validateBrowsers = function (browserNames) {
|
|
|
27
27
|
});
|
|
28
28
|
// If there are invalid browsers, log error and exit
|
|
29
29
|
if (invalid.length > 0) {
|
|
30
|
-
console.error(
|
|
30
|
+
console.error(`Browser(s) invalid: ${invalid.join(', ')}. Available browsers: ${AVAILABLE_BROWSERS_1.default.join(', ')}`);
|
|
31
31
|
process.exit(1);
|
|
32
32
|
}
|
|
33
33
|
return valid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateBrowsers.js","sourceRoot":"","sources":["../../../start/helpers/validateBrowsers.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"validateBrowsers.js","sourceRoot":"","sources":["../../../start/helpers/validateBrowsers.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,yFAAiE;AAEjE;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,YAAsB,EAAY,EAAE;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,wDAAwD;IACxD,MAAM,qBAAqB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/F,wBAAwB;IACxB,qBAAqB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACxC,IAAI,4BAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,4BAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
package/lib/start/index.js
CHANGED
|
@@ -11,87 +11,87 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
// Import libs
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const path_1 = __importDefault(require("path"));
|
|
16
16
|
// Import helpers
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
const showChooser_1 = __importDefault(require("./helpers/showChooser"));
|
|
18
|
+
const parseCommaSeparated_1 = __importDefault(require("./helpers/parseCommaSeparated"));
|
|
19
|
+
const findProfilesByNames_1 = __importDefault(require("./helpers/findProfilesByNames"));
|
|
20
|
+
const validateBrowsers_1 = __importDefault(require("./helpers/validateBrowsers"));
|
|
21
|
+
const extractArgValue_1 = __importDefault(require("./helpers/extractArgValue"));
|
|
22
|
+
const getRootPath_1 = __importDefault(require("./helpers/getRootPath"));
|
|
23
|
+
const executeCypress_1 = __importDefault(require("./helpers/executeCypress"));
|
|
24
24
|
// Import constants
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const AVAILABLE_BROWSERS_1 = __importDefault(require("./constants/AVAILABLE_BROWSERS"));
|
|
26
|
+
const DEFAULT_THREADS_PER_COMBO_1 = __importDefault(require("./constants/DEFAULT_THREADS_PER_COMBO"));
|
|
27
27
|
// Get the project directory
|
|
28
|
-
|
|
28
|
+
const pwd = (0, getRootPath_1.default)();
|
|
29
29
|
// Find available profiles under /cypress/profiles
|
|
30
|
-
|
|
30
|
+
const profilesDir = path_1.default.join(pwd, 'cypress/profiles');
|
|
31
31
|
if (!fs_1.default.existsSync(profilesDir)) {
|
|
32
|
-
console.warn(
|
|
32
|
+
console.warn(`[cypress.config] Could not load profile '${profilesDir}'`);
|
|
33
33
|
process.exit(1);
|
|
34
34
|
}
|
|
35
35
|
// Find all files matching the pattern: {ProfileName}.Profile.ts
|
|
36
|
-
|
|
36
|
+
const profileFiles = (fs_1.default
|
|
37
37
|
.readdirSync(profilesDir)
|
|
38
|
-
.filter(
|
|
38
|
+
.filter((f) => {
|
|
39
39
|
return f.endsWith('.Profile.ts');
|
|
40
40
|
}));
|
|
41
41
|
// Get profile names by removing '.Profile.ts'
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return { file
|
|
42
|
+
const profiles = profileFiles.map((file) => {
|
|
43
|
+
const profileName = file.replace('.Profile.ts', '');
|
|
44
|
+
return { file, profileName };
|
|
45
45
|
});
|
|
46
46
|
// Exit if no profiles found
|
|
47
47
|
if (profiles.length === 0) {
|
|
48
|
-
console.error(
|
|
48
|
+
console.error(`No profiles found in '${profilesDir}'`);
|
|
49
49
|
process.exit(1);
|
|
50
50
|
}
|
|
51
51
|
// Parse CLI arguments
|
|
52
|
-
|
|
52
|
+
const args = process.argv.slice(2);
|
|
53
53
|
// Get selections from environment variables or CLI arguments
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
let selectedProfiles = [];
|
|
55
|
+
let selectedBrowsers = [];
|
|
56
|
+
let isHeadless = false;
|
|
57
57
|
// Check for PROFILE (env var or CLI arg)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
const envProfileRaw = process.env.PROFILE;
|
|
59
|
+
const argProfileRaw = (0, extractArgValue_1.default)(args, '--profile');
|
|
60
|
+
const profileRaw = envProfileRaw || argProfileRaw;
|
|
61
61
|
if (profileRaw) {
|
|
62
|
-
|
|
62
|
+
const profileNames = (0, parseCommaSeparated_1.default)(profileRaw);
|
|
63
63
|
selectedProfiles = (0, findProfilesByNames_1.default)(profileNames, profiles);
|
|
64
64
|
}
|
|
65
65
|
// Check for BROWSER (env var or CLI arg)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
const envBrowserRaw = process.env.BROWSER;
|
|
67
|
+
const argBrowserRaw = (0, extractArgValue_1.default)(args, '--browser');
|
|
68
|
+
const browserRaw = envBrowserRaw || argBrowserRaw;
|
|
69
69
|
if (browserRaw) {
|
|
70
|
-
|
|
70
|
+
const browserNames = (0, parseCommaSeparated_1.default)(browserRaw);
|
|
71
71
|
selectedBrowsers = (0, validateBrowsers_1.default)(browserNames);
|
|
72
72
|
}
|
|
73
73
|
// Check for HEADLESS (env var or CLI flag)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
const envHeadlessRaw = process.env.HEADLESS;
|
|
75
|
+
const headlessFlagValue = (0, extractArgValue_1.default)(args, '--headless');
|
|
76
|
+
const hasHeadlessFlag = headlessFlagValue !== undefined;
|
|
77
77
|
isHeadless = !!(envHeadlessRaw && envHeadlessRaw.toLowerCase() !== 'false') || hasHeadlessFlag;
|
|
78
78
|
// Check for THREADS_PER_COMBO (env var or CLI arg)
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
const envThreadsRaw = process.env.THREADS_PER_COMBO;
|
|
80
|
+
const argThreadsRaw = (0, extractArgValue_1.default)(args, '--threadsPerCombo');
|
|
81
|
+
const threadsRaw = envThreadsRaw || argThreadsRaw;
|
|
82
|
+
let threadsPerCombo;
|
|
83
83
|
if (threadsRaw) {
|
|
84
|
-
|
|
84
|
+
const parsed = Number.parseInt(threadsRaw, 10);
|
|
85
85
|
if (!Number.isNaN(parsed) && parsed > 0) {
|
|
86
86
|
threadsPerCombo = parsed;
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
89
|
-
console.warn(
|
|
89
|
+
console.warn(`⚠️ Invalid THREADS_PER_COMBO value: "${threadsRaw}". Using default (${DEFAULT_THREADS_PER_COMBO_1.default}).`);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
// If headless wasn't specified, ask the user to choose
|
|
93
93
|
if (!envHeadlessRaw && !hasHeadlessFlag) {
|
|
94
|
-
|
|
94
|
+
const choices = (0, showChooser_1.default)({
|
|
95
95
|
question: 'Run in headless mode?',
|
|
96
96
|
options: [
|
|
97
97
|
{ tag: 'Y', description: 'Yes (headless)' },
|
|
@@ -104,25 +104,23 @@ if (!envHeadlessRaw && !hasHeadlessFlag) {
|
|
|
104
104
|
}
|
|
105
105
|
// If running headless and no browsers were selected, ask the user to choose
|
|
106
106
|
if (isHeadless && selectedBrowsers.length === 0) {
|
|
107
|
-
|
|
108
|
-
var tag = _a.tag, name = _a.name;
|
|
107
|
+
const options = AVAILABLE_BROWSERS_1.default.map(({ tag, name }) => {
|
|
109
108
|
return {
|
|
110
|
-
tag
|
|
109
|
+
tag,
|
|
111
110
|
description: name,
|
|
112
111
|
};
|
|
113
112
|
});
|
|
114
|
-
|
|
113
|
+
const choices = (0, showChooser_1.default)({
|
|
115
114
|
question: 'Choose browser(s) (commas for multiple: C,F)',
|
|
116
|
-
options
|
|
115
|
+
options,
|
|
117
116
|
title: 'Select browser(s)',
|
|
118
117
|
allowMulti: true,
|
|
119
118
|
});
|
|
120
119
|
selectedBrowsers = (choices
|
|
121
|
-
.map(
|
|
120
|
+
.map((choice) => {
|
|
122
121
|
return AVAILABLE_BROWSERS_1.default[choice.index];
|
|
123
122
|
})
|
|
124
|
-
.map(
|
|
125
|
-
var name = _a.name;
|
|
123
|
+
.map(({ name }) => {
|
|
126
124
|
return name;
|
|
127
125
|
}));
|
|
128
126
|
}
|
|
@@ -133,30 +131,30 @@ if (isHeadless && selectedBrowsers.length === 0) {
|
|
|
133
131
|
if (selectedProfiles.length === 0
|
|
134
132
|
|| (!isHeadless && selectedProfiles.length > 1)) {
|
|
135
133
|
// Filter out "Default" profile from the chooser options
|
|
136
|
-
|
|
134
|
+
const choosableProfiles = profiles.filter((p) => {
|
|
137
135
|
return p.profileName.toLowerCase() !== 'default';
|
|
138
136
|
});
|
|
139
|
-
|
|
137
|
+
const options = choosableProfiles.map((p, idx) => {
|
|
140
138
|
return {
|
|
141
139
|
tag: String(idx + 1),
|
|
142
140
|
description: p.profileName,
|
|
143
141
|
};
|
|
144
142
|
});
|
|
145
|
-
|
|
143
|
+
const choices = (0, showChooser_1.default)({
|
|
146
144
|
question: (isHeadless
|
|
147
145
|
? 'Choose profile(s) (commas for multiple: 1,2):'
|
|
148
146
|
: 'Choose profile:'),
|
|
149
|
-
options
|
|
150
|
-
title:
|
|
147
|
+
options,
|
|
148
|
+
title: `Choose profile${isHeadless ? 's' : ''}`,
|
|
151
149
|
allowMulti: isHeadless,
|
|
152
150
|
});
|
|
153
|
-
selectedProfiles = choices.map(
|
|
151
|
+
selectedProfiles = choices.map((choice) => { return choosableProfiles[choice.index]; });
|
|
154
152
|
}
|
|
155
153
|
// Execute Cypress with selected configuration
|
|
156
154
|
(0, executeCypress_1.default)({
|
|
157
|
-
selectedProfiles
|
|
158
|
-
selectedBrowsers
|
|
159
|
-
isHeadless
|
|
160
|
-
threadsPerCombo
|
|
155
|
+
selectedProfiles,
|
|
156
|
+
selectedBrowsers,
|
|
157
|
+
isHeadless,
|
|
158
|
+
threadsPerCombo,
|
|
161
159
|
});
|
|
162
160
|
//# sourceMappingURL=index.js.map
|
package/lib/start/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../start/index.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B;;;;;GAKG;;;;;AAEH,cAAc;AACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../start/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dceky",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Cypress toolkit for Harvard DCE",
|
|
5
5
|
"main": "./lib/src/index.js",
|
|
6
6
|
"types": "./lib/src/index.d.ts",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"ky:setup": "npx tsx ./setup/index.ts",
|
|
11
11
|
"ky:dev": "npm run ky:setup && npm run ky:start",
|
|
12
12
|
"preinstall": "npx tsx ./preinstall/index.ts",
|
|
13
|
-
"postinstall": "npx tsx ./postinstall/index.ts"
|
|
13
|
+
"postinstall": "npx tsx ./postinstall/index.ts",
|
|
14
|
+
"gen-docs": "npx tsx ./genDocs/index.ts"
|
|
14
15
|
},
|
|
15
16
|
"repository": {
|
|
16
17
|
"type": "git",
|
|
@@ -30,7 +31,6 @@
|
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"@types/clear": "^0.1.4",
|
|
32
33
|
"@types/ejs": "^3.1.5",
|
|
33
|
-
"@types/node": "^22.7.0",
|
|
34
34
|
"@types/prompt-sync": "^4.2.3",
|
|
35
35
|
"child_process": "^1.0.2",
|
|
36
36
|
"clear": "^0.1.0",
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/deepmerge": "2.1.0",
|
|
44
|
-
"@types/
|
|
44
|
+
"@types/marked": "^5.0.2",
|
|
45
|
+
"@types/node": "^24.12.2",
|
|
45
46
|
"cross-env": "^10.1.0",
|
|
46
47
|
"eslint": "^8.42.0",
|
|
47
48
|
"eslint-config-airbnb": "^19.0.4",
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
"eslint-plugin-import": "^2.32.0",
|
|
50
51
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
51
52
|
"eslint-plugin-react": "^7.37.5",
|
|
53
|
+
"marked": "^18.0.0",
|
|
52
54
|
"typescript": "^5.9.3"
|
|
53
55
|
},
|
|
54
56
|
"peerDependencies": {
|
|
@@ -23,7 +23,7 @@ const genE2ELaunchFile = (): string => {
|
|
|
23
23
|
'// Auto-generated by dceky - do not edit manually',
|
|
24
24
|
'',
|
|
25
25
|
'import commands from \'dceky\';',
|
|
26
|
-
'import \'./kyCommandDeclarations
|
|
26
|
+
'import \'./kyCommandDeclarations\';',
|
|
27
27
|
'import \'../commands\';',
|
|
28
28
|
'',
|
|
29
29
|
'// Make Cypress globally available as "ky"',
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Import libs
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
// Import shared helpers
|
|
6
|
+
import getRootPath from './helpers/getRootPath';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Generate the ts.config.json file for Cypress TypeScript support
|
|
10
|
+
* @author Yuen Ler Chow
|
|
11
|
+
*/
|
|
12
|
+
const genTsConfigFile = () => {
|
|
13
|
+
const root = getRootPath();
|
|
14
|
+
const outputFile = path.join(root, 'tsconfig.json');
|
|
15
|
+
|
|
16
|
+
if (fs.existsSync(outputFile)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const tsConfig = {
|
|
21
|
+
compilerOptions: {
|
|
22
|
+
module: 'commonjs',
|
|
23
|
+
esModuleInterop: true,
|
|
24
|
+
noImplicitAny: true,
|
|
25
|
+
noEmitOnError: true,
|
|
26
|
+
removeComments: false,
|
|
27
|
+
declaration: true,
|
|
28
|
+
sourceMap: true,
|
|
29
|
+
target: 'es6',
|
|
30
|
+
lib: [
|
|
31
|
+
'DOM',
|
|
32
|
+
'ES5',
|
|
33
|
+
],
|
|
34
|
+
types: [
|
|
35
|
+
'node',
|
|
36
|
+
],
|
|
37
|
+
rootDir: './cypress',
|
|
38
|
+
},
|
|
39
|
+
include: [
|
|
40
|
+
'./cypress',
|
|
41
|
+
],
|
|
42
|
+
'ts-node': {
|
|
43
|
+
files: true,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
fs.writeFileSync(
|
|
48
|
+
outputFile,
|
|
49
|
+
`${JSON.stringify(tsConfig, null, 2)}\n`,
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
return outputFile;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export default genTsConfigFile;
|
package/setup/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import setupCypressDependencies from './setupCypressDependencies';
|
|
|
5
5
|
import checkRequiredFiles from './checkRequiredFiles';
|
|
6
6
|
import genE2ELaunchFile from './genE2ELaunchFile';
|
|
7
7
|
import genKyCommandDeclarations from './genKyCommandDeclarations';
|
|
8
|
+
import genTsConfigFile from './genTsConfigFile';
|
|
8
9
|
|
|
9
10
|
setupCypressDependencies();
|
|
10
11
|
checkRequiredFiles();
|
|
@@ -13,3 +14,4 @@ genDynamicConfigFile();
|
|
|
13
14
|
addToGitIgnore();
|
|
14
15
|
genE2ELaunchFile();
|
|
15
16
|
genKyCommandDeclarations();
|
|
17
|
+
genTsConfigFile();
|