dceky 1.0.0-beta.6 → 1.0.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.
Files changed (199) hide show
  1. package/.eslintrc.js +93 -0
  2. package/README.md +41 -0
  3. package/cypress/e2e/profile-test.cy.ts +10 -0
  4. package/cypress/fixtures/example.json +5 -0
  5. package/cypress/support/commands.ts +37 -0
  6. package/cypress/support/e2e.ts +17 -0
  7. package/cypress.config.ts +9 -0
  8. package/docs/GlobalsAndProfiles.md +23 -0
  9. package/lib/setup/addToGitIgnore.d.ts +6 -0
  10. package/lib/setup/addToGitIgnore.js +46 -0
  11. package/lib/setup/addToGitIgnore.js.map +1 -0
  12. package/lib/setup/checkRequiredFiles.d.ts +6 -0
  13. package/lib/setup/checkRequiredFiles.js +58 -0
  14. package/lib/setup/checkRequiredFiles.js.map +1 -0
  15. package/lib/setup/genCommandImportFile.d.ts +7 -0
  16. package/lib/setup/genCommandImportFile.js +66 -0
  17. package/lib/setup/genCommandImportFile.js.map +1 -0
  18. package/lib/setup/genConfiguration/helpers/resolveDependents.d.ts +13 -0
  19. package/lib/setup/genConfiguration/helpers/resolveDependents.js +50 -0
  20. package/lib/setup/genConfiguration/helpers/resolveDependents.js.map +1 -0
  21. package/lib/setup/genConfiguration/helpers/splitEnv.d.ts +10 -0
  22. package/lib/setup/genConfiguration/helpers/splitEnv.js +27 -0
  23. package/lib/setup/genConfiguration/helpers/splitEnv.js.map +1 -0
  24. package/lib/setup/genConfiguration/index.d.ts +15 -0
  25. package/lib/setup/genConfiguration/index.js +86 -0
  26. package/lib/setup/genConfiguration/index.js.map +1 -0
  27. package/lib/setup/genConfiguration/types/DependentValue.d.ts +11 -0
  28. package/lib/setup/genConfiguration/types/DependentValue.js +3 -0
  29. package/lib/setup/genConfiguration/types/DependentValue.js.map +1 -0
  30. package/lib/setup/genConfiguration/types/GlobalsOrProfile.d.ts +9 -0
  31. package/lib/setup/genConfiguration/types/GlobalsOrProfile.js +3 -0
  32. package/lib/setup/genConfiguration/types/GlobalsOrProfile.js.map +1 -0
  33. package/lib/setup/genConfiguration/types/SplitEnv.d.ts +13 -0
  34. package/lib/setup/genConfiguration/types/SplitEnv.js +3 -0
  35. package/lib/setup/genConfiguration/types/SplitEnv.js.map +1 -0
  36. package/lib/setup/genConfigurationFile.d.ts +2 -0
  37. package/lib/setup/genConfigurationFile.js +63 -0
  38. package/lib/setup/genConfigurationFile.js.map +1 -0
  39. package/lib/setup/genDynamicConfigFile.d.ts +5 -0
  40. package/lib/setup/genDynamicConfigFile.js +28 -0
  41. package/lib/setup/genDynamicConfigFile.js.map +1 -0
  42. package/lib/setup/index.d.ts +1 -0
  43. package/lib/setup/index.js +16 -0
  44. package/lib/setup/index.js.map +1 -0
  45. package/lib/setup/setupCypressDependencies.d.ts +6 -0
  46. package/lib/setup/setupCypressDependencies.js +40 -0
  47. package/lib/setup/setupCypressDependencies.js.map +1 -0
  48. package/lib/src/commands/assertDoesNotHaveClass.d.ts +20 -0
  49. package/lib/src/commands/assertDoesNotHaveClass.js +17 -0
  50. package/lib/src/commands/assertDoesNotHaveClass.js.map +1 -0
  51. package/lib/src/commands/assertHasClass.d.ts +20 -0
  52. package/lib/src/commands/assertHasClass.js +17 -0
  53. package/lib/src/commands/assertHasClass.js.map +1 -0
  54. package/lib/src/commands/assertNumElements.d.ts +19 -0
  55. package/lib/src/commands/assertNumElements.js +17 -0
  56. package/lib/src/commands/assertNumElements.js.map +1 -0
  57. package/lib/src/commands/extractDataFromClass.d.ts +18 -0
  58. package/lib/src/commands/extractDataFromClass.js +25 -0
  59. package/lib/src/commands/extractDataFromClass.js.map +1 -0
  60. package/lib/src/commands/extractDataFromClassByContents.d.ts +19 -0
  61. package/lib/src/commands/extractDataFromClassByContents.js +26 -0
  62. package/lib/src/commands/extractDataFromClassByContents.js.map +1 -0
  63. package/lib/src/commands/getJSON.d.ts +16 -0
  64. package/lib/src/commands/getJSON.js +21 -0
  65. package/lib/src/commands/getJSON.js.map +1 -0
  66. package/lib/src/commands/getNumElements.d.ts +15 -0
  67. package/lib/src/commands/getNumElements.js +19 -0
  68. package/lib/src/commands/getNumElements.js.map +1 -0
  69. package/lib/src/commands/handleHarvardKey.d.ts +15 -0
  70. package/lib/src/commands/handleHarvardKey.js +53 -0
  71. package/lib/src/commands/handleHarvardKey.js.map +1 -0
  72. package/lib/src/commands/launchAs.d.ts +25 -0
  73. package/lib/src/commands/launchAs.js +66 -0
  74. package/lib/src/commands/launchAs.js.map +1 -0
  75. package/lib/src/commands/launchLTIUsingToken.d.ts +21 -0
  76. package/lib/src/commands/launchLTIUsingToken.js +68 -0
  77. package/lib/src/commands/launchLTIUsingToken.js.map +1 -0
  78. package/lib/src/commands/navigateToHref.d.ts +15 -0
  79. package/lib/src/commands/navigateToHref.js +35 -0
  80. package/lib/src/commands/navigateToHref.js.map +1 -0
  81. package/lib/src/commands/runScript.d.ts +15 -0
  82. package/lib/src/commands/runScript.js +20 -0
  83. package/lib/src/commands/runScript.js.map +1 -0
  84. package/lib/src/commands/typeInto.d.ts +24 -0
  85. package/lib/src/commands/typeInto.js +41 -0
  86. package/lib/src/commands/typeInto.js.map +1 -0
  87. package/lib/src/commands/visitCanvasGETEndpoint.d.ts +20 -0
  88. package/lib/src/commands/visitCanvasGETEndpoint.js +26 -0
  89. package/lib/src/commands/visitCanvasGETEndpoint.js.map +1 -0
  90. package/lib/src/commands/waitForElementVisible.d.ts +16 -0
  91. package/lib/src/commands/waitForElementVisible.js +19 -0
  92. package/lib/src/commands/waitForElementVisible.js.map +1 -0
  93. package/lib/src/genConfiguration/helpers/resolveDependents.d.ts +13 -0
  94. package/lib/src/genConfiguration/helpers/resolveDependents.js +50 -0
  95. package/lib/src/genConfiguration/helpers/resolveDependents.js.map +1 -0
  96. package/lib/src/genConfiguration/helpers/splitEnv.d.ts +10 -0
  97. package/lib/src/genConfiguration/helpers/splitEnv.js +27 -0
  98. package/lib/src/genConfiguration/helpers/splitEnv.js.map +1 -0
  99. package/{src/genConfiguration.ts → lib/src/genConfiguration/index.d.ts} +3 -6
  100. package/lib/src/genConfiguration/index.js +88 -0
  101. package/lib/src/genConfiguration/index.js.map +1 -0
  102. package/lib/src/genConfiguration/types/DependentValue.d.ts +11 -0
  103. package/lib/src/genConfiguration/types/DependentValue.js +3 -0
  104. package/lib/src/genConfiguration/types/DependentValue.js.map +1 -0
  105. package/lib/src/genConfiguration/types/GlobalsOrProfile.d.ts +9 -0
  106. package/lib/src/genConfiguration/types/GlobalsOrProfile.js +3 -0
  107. package/lib/src/genConfiguration/types/GlobalsOrProfile.js.map +1 -0
  108. package/lib/src/genConfiguration/types/SplitEnv.d.ts +13 -0
  109. package/lib/src/genConfiguration/types/SplitEnv.js +3 -0
  110. package/lib/src/genConfiguration/types/SplitEnv.js.map +1 -0
  111. package/lib/{index.d.ts → src/index.d.ts} +1 -1
  112. package/lib/{index.js → src/index.js} +6 -3
  113. package/lib/src/index.js.map +1 -0
  114. package/lib/src/init.d.ts +6 -0
  115. package/lib/src/init.js +45 -0
  116. package/lib/src/init.js.map +1 -0
  117. package/lib/start/constants/AVAILABLE_BROWSERS.d.ts +9 -0
  118. package/lib/start/constants/AVAILABLE_BROWSERS.js +27 -0
  119. package/lib/start/constants/AVAILABLE_BROWSERS.js.map +1 -0
  120. package/lib/start/helpers/exec.d.ts +8 -0
  121. package/lib/start/helpers/exec.js +18 -0
  122. package/lib/start/helpers/exec.js.map +1 -0
  123. package/lib/start/helpers/extractArgValue.d.ts +10 -0
  124. package/lib/start/helpers/extractArgValue.js +39 -0
  125. package/lib/start/helpers/extractArgValue.js.map +1 -0
  126. package/lib/start/helpers/findProfilesByNames.d.ts +16 -0
  127. package/lib/start/helpers/findProfilesByNames.js +35 -0
  128. package/lib/start/helpers/findProfilesByNames.js.map +1 -0
  129. package/lib/start/helpers/parseCommaSeparated.d.ts +8 -0
  130. package/lib/start/helpers/parseCommaSeparated.js +23 -0
  131. package/lib/start/helpers/parseCommaSeparated.js.map +1 -0
  132. package/lib/start/helpers/print.d.ts +38 -0
  133. package/lib/start/helpers/print.js +145 -0
  134. package/lib/start/helpers/print.js.map +1 -0
  135. package/lib/start/helpers/prompt.d.ts +8 -0
  136. package/lib/start/helpers/prompt.js +25 -0
  137. package/lib/start/helpers/prompt.js.map +1 -0
  138. package/lib/start/helpers/showChooser.d.ts +21 -0
  139. package/lib/start/helpers/showChooser.js +116 -0
  140. package/lib/start/helpers/showChooser.js.map +1 -0
  141. package/lib/start/helpers/validateBrowsers.d.ts +8 -0
  142. package/lib/start/helpers/validateBrowsers.js +36 -0
  143. package/lib/start/helpers/validateBrowsers.js.map +1 -0
  144. package/lib/start/index.d.ts +7 -0
  145. package/lib/start/index.js +139 -0
  146. package/lib/start/index.js.map +1 -0
  147. package/lib/start/types/ChooserOption.d.ts +10 -0
  148. package/lib/start/types/ChooserOption.js +3 -0
  149. package/lib/start/types/ChooserOption.js.map +1 -0
  150. package/package.json +28 -8
  151. package/setup/addToGitIgnore.ts +47 -0
  152. package/setup/checkRequiredFiles.ts +62 -0
  153. package/setup/genCommandImportFile.ts +75 -0
  154. package/setup/genDynamicConfigFile.ts +28 -0
  155. package/setup/index.ts +11 -0
  156. package/setup/setupCypressDependencies.ts +38 -0
  157. package/src/commands/assertDoesNotHaveClass.ts +51 -0
  158. package/src/commands/assertHasClass.ts +51 -0
  159. package/src/commands/assertNumElements.ts +50 -0
  160. package/src/commands/extractDataFromClass.ts +52 -0
  161. package/src/commands/extractDataFromClassByContents.ts +55 -0
  162. package/src/commands/getJSON.ts +45 -0
  163. package/src/commands/getNumElements.ts +45 -0
  164. package/src/commands/handleHarvardKey.ts +91 -0
  165. package/src/commands/launchAs.ts +120 -0
  166. package/src/commands/launchLTIUsingToken.ts +115 -0
  167. package/src/commands/navigateToHref.ts +60 -0
  168. package/src/commands/runScript.ts +44 -0
  169. package/src/commands/typeInto.ts +88 -0
  170. package/src/commands/visitCanvasGETEndpoint.ts +61 -0
  171. package/src/commands/waitForElementVisible.ts +49 -0
  172. package/src/genConfiguration/helpers/resolveDependents.ts +47 -0
  173. package/src/genConfiguration/helpers/splitEnv.ts +30 -0
  174. package/src/genConfiguration/index.ts +94 -0
  175. package/src/genConfiguration/types/DependentValue.ts +14 -0
  176. package/src/genConfiguration/types/GlobalsOrProfile.ts +12 -0
  177. package/src/genConfiguration/types/SplitEnv.ts +18 -0
  178. package/src/index.ts +7 -4
  179. package/src/init.ts +36 -17
  180. package/start/constants/AVAILABLE_BROWSERS.ts +28 -0
  181. package/start/helpers/exec.ts +17 -0
  182. package/start/helpers/extractArgValue.ts +42 -0
  183. package/start/helpers/findProfilesByNames.ts +39 -0
  184. package/start/helpers/parseCommaSeparated.ts +23 -0
  185. package/start/helpers/print.ts +155 -0
  186. package/start/helpers/prompt.ts +23 -0
  187. package/start/helpers/showChooser.ts +140 -0
  188. package/start/helpers/validateBrowsers.ts +35 -0
  189. package/start/index.ts +163 -0
  190. package/start/types/ChooserOption.ts +11 -0
  191. package/tsconfig.json +3 -4
  192. package/.eslintrc.json +0 -58
  193. package/lib/genConfiguration.d.ts +0 -8
  194. package/lib/genConfiguration.js +0 -13
  195. package/lib/genConfiguration.js.map +0 -1
  196. package/lib/index.js.map +0 -1
  197. package/lib/init.d.ts +0 -13
  198. package/lib/init.js +0 -10
  199. package/lib/init.js.map +0 -1
@@ -0,0 +1,86 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /* eslint-disable no-console */
18
+ /* eslint-disable global-require */
19
+ /* eslint-disable import/no-dynamic-require */
20
+ var path_1 = __importDefault(require("path"));
21
+ // Import external libraries
22
+ var deepmerge_1 = __importDefault(require("deepmerge"));
23
+ // Import helpers
24
+ var splitEnv_1 = __importDefault(require("./helpers/splitEnv"));
25
+ var resolveDependents_1 = __importDefault(require("./helpers/resolveDependents"));
26
+ // Determine project directory
27
+ var CWD = path_1.default.join(__dirname, '../..');
28
+ /**
29
+ * Generate Cypress configuration based on global credentials,
30
+ * variables, resources, and profiles
31
+ * @author Gardenia Liu
32
+ * @author Gabe Abrams
33
+ */
34
+ var genConfiguration = function () {
35
+ var _a, _b;
36
+ // Define paths
37
+ var GLOBALS_PATH = path_1.default.join(CWD, '/cypress/globals');
38
+ var PROFILES_PATH = path_1.default.join(CWD, '/cypress/profiles');
39
+ // Import global env var objects
40
+ var GlobalCredentials = require(path_1.default.join(GLOBALS_PATH, '/GlobalCredentials'));
41
+ var GlobalResources = require(path_1.default.join(GLOBALS_PATH, '/GlobalResources'));
42
+ var GlobalValues = require(path_1.default.join(GLOBALS_PATH, '/GlobalValues'));
43
+ // Determine profile file name (default is stage)
44
+ var profileName = process.env.CYPRESS_PROFILE || 'stage';
45
+ // Load in chosen profile configuration
46
+ var profileModules = {};
47
+ try {
48
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
49
+ var mod = require(path_1.default.join(PROFILES_PATH, "/".concat(profileName, ".Profile")));
50
+ profileModules = ((_b = (_a = mod === null || mod === void 0 ? void 0 : mod.default) !== null && _a !== void 0 ? _a : mod) !== null && _b !== void 0 ? _b : {});
51
+ }
52
+ catch (e) {
53
+ console.warn("[cypress.config] Could not load profile '".concat(profileName, ".Profile'"), e);
54
+ process.exit(1);
55
+ }
56
+ // NOTE: Order matters (later overrides earlier)
57
+ var sources = [GlobalCredentials, GlobalResources, GlobalValues, profileModules];
58
+ // Split all sources into basic and dependent
59
+ var splits = sources.map(function (source) {
60
+ return (0, splitEnv_1.default)(source);
61
+ });
62
+ // Extract basic and dependent values from splits
63
+ var basicValues = splits.map(function (s) {
64
+ return s.basic;
65
+ });
66
+ var dependentValues = splits.map(function (s) {
67
+ return s.dependent;
68
+ });
69
+ // Merge all of the basics
70
+ var basics = deepmerge_1.default.all(basicValues);
71
+ // Resolve dependencies
72
+ var dependents = (0, resolveDependents_1.default)(dependentValues, basics);
73
+ // Add basics, depends, and profileName into the final env
74
+ var finalEnv = __assign(__assign(__assign({}, basics), dependents), { profileName: profileName });
75
+ var baseUrl = finalEnv.baseURL;
76
+ // Return the configuration object
77
+ return {
78
+ e2e: {
79
+ experimentalOriginDependencies: true,
80
+ baseUrl: baseUrl,
81
+ env: finalEnv,
82
+ },
83
+ };
84
+ };
85
+ exports.default = genConfiguration;
86
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../setup/genConfiguration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,mCAAmC;AACnC,8CAA8C;AAC9C,8CAAwB;AAExB,4BAA4B;AAC5B,wDAAkC;AAElC,iBAAiB;AACjB,gEAA0C;AAC1C,kFAA4D;AAM5D,8BAA8B;AAC9B,IAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,IAAM,gBAAgB,GAAG;;IACvB,eAAe;IACf,IAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACxD,IAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAE1D,gCAAgC;IAChC,IAAM,iBAAiB,GAAqB,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACnG,IAAM,eAAe,GAAqB,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC/F,IAAM,YAAY,GAAqB,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAEzF,iDAAiD;IACjD,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC;IAE3D,uCAAuC;IACvC,IAAI,cAAc,GAAqB,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,8DAA8D;QAC9D,IAAM,GAAG,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAI,WAAW,aAAU,CAAC,CAAC,CAAC;QACzE,cAAc,GAAG,CAAC,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,mCAAI,GAAG,mCAAI,EAAE,CAAqB,CAAC;IACnE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,mDAA4C,WAAW,cAAW,EAAE,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gDAAgD;IAChD,IAAM,OAAO,GAAuB,CAAC,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAEvG,6CAA6C;IAC7C,IAAM,MAAM,GAAe,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM;QAC5C,OAAO,IAAA,kBAAQ,EAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,IAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;QAC/B,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;QACnC,OAAO,CAAC,CAAC,SAAS,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,0BAA0B;IAC1B,IAAM,MAAM,GAAqB,mBAAS,CAAC,GAAG,CAAmB,WAAW,CAAC,CAAC;IAE9E,uBAAuB;IACvB,IAAM,UAAU,GAAqB,IAAA,2BAAiB,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAEhF,0DAA0D;IAC1D,IAAM,QAAQ,kCACT,MAAM,GACN,UAAU,KACb,WAAW,aAAA,GACZ,CAAC;IAEF,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAEjC,kCAAkC;IAClC,OAAO;QACL,GAAG,EAAE;YACH,8BAA8B,EAAE,IAAI;YACpC,OAAO,SAAA;YACP,GAAG,EAAE,QAAQ;SACd;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Value for a dependent entry
3
+ * @author Gardenia Liu
4
+ */
5
+ type DependentValue = {
6
+ dependsOn: string;
7
+ } & {
8
+ [k: string]: any;
9
+ default?: any;
10
+ };
11
+ export default DependentValue;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DependentValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependentValue.js","sourceRoot":"","sources":["../../../../setup/genConfiguration/types/DependentValue.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Object containing global variables, profile values, etc.
3
+ * @author Gardenia Liu
4
+ */
5
+ type GlobalsOrProfile = {
6
+ baseURL?: string;
7
+ [k: string]: any;
8
+ };
9
+ export default GlobalsOrProfile;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=GlobalsOrProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalsOrProfile.js","sourceRoot":"","sources":["../../../../setup/genConfiguration/types/GlobalsOrProfile.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type GlobalsOrProfile from './GlobalsOrProfile';
2
+ import type DependentValue from './DependentValue';
3
+ /**
4
+ * Env type where basic and dependent entries are separated
5
+ * @author Gardenia Liu
6
+ */
7
+ type SplitEnv = {
8
+ basic: GlobalsOrProfile;
9
+ dependent: {
10
+ [k: string]: DependentValue;
11
+ };
12
+ };
13
+ export default SplitEnv;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SplitEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitEnv.js","sourceRoot":"","sources":["../../../../setup/genConfiguration/types/SplitEnv.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ declare const genConfigurationFile: () => string;
2
+ export default genConfigurationFile;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var fs = __importStar(require("fs"));
40
+ var path = __importStar(require("path"));
41
+ /**
42
+ * Generate Cypress configuration based on global credentials,
43
+ * variables, resources, and profiles
44
+ * @author Yuen Ler Chow
45
+ */
46
+ var genConfiguration_1 = __importDefault(require("./genConfiguration"));
47
+ var genConfigurationFile = function () {
48
+ var root = path.join(__dirname, '../..');
49
+ var outputFile = path.join(root, 'cypress.config.ts');
50
+ var topOfFileComment = '// Auto-generated by dceky - do not edit manually\n';
51
+ // Generate the configuration object
52
+ var config = (0, genConfiguration_1.default)();
53
+ // Format as TypeScript file content
54
+ var configContent = "import { defineConfig } from 'cypress';\n\nexport default defineConfig(\n ".concat(JSON.stringify(config, null, 2), "\n);\n");
55
+ // Write the configuration file directly
56
+ var content = topOfFileComment + configContent;
57
+ fs.writeFileSync(outputFile, content);
58
+ // eslint-disable-next-line no-console
59
+ console.log("Generated Cypress configuration file: ".concat(outputFile));
60
+ return outputFile;
61
+ };
62
+ exports.default = genConfigurationFile;
63
+ //# sourceMappingURL=genConfigurationFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genConfigurationFile.js","sourceRoot":"","sources":["../../setup/genConfigurationFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyB;AACzB,yCAA6B;AAE7B;;;;GAIG;AACH,wEAAkD;AAElD,IAAM,oBAAoB,GAAG;IAC3B,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACxD,IAAM,gBAAgB,GAAG,qDAAqD,CAAC;IAE/E,oCAAoC;IACpC,IAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAElC,oCAAoC;IACpC,IAAM,aAAa,GAAG,qFAGpB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,WAElC,CAAC;IAEA,wCAAwC;IACxC,IAAM,OAAO,GAAG,gBAAgB,GAAG,aAAa,CAAC;IAEjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtC,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,gDAAyC,UAAU,CAAE,CAAC,CAAC;IAEnE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generate the dynamic configuration file
3
+ */
4
+ declare const genDynamicConfigFile: () => string;
5
+ export default genDynamicConfigFile;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var fs_1 = __importDefault(require("fs"));
7
+ var path_1 = __importDefault(require("path"));
8
+ /**
9
+ * Generate the dynamic configuration file
10
+ */
11
+ var genDynamicConfigFile = function () {
12
+ var root = path_1.default.join(__dirname, '../..');
13
+ var outputFile = path_1.default.join(root, 'cypress.config.ts');
14
+ // Create the dynamic configuration file
15
+ var dynamicConfigFile = [
16
+ '// Auto-generated by dceky - do not edit manually',
17
+ '',
18
+ 'import { genConfiguration } from \'dceky\';',
19
+ '',
20
+ 'export default genConfiguration();',
21
+ '',
22
+ ].join('\n');
23
+ // Write the configuration file directly
24
+ fs_1.default.writeFileSync(outputFile, dynamicConfigFile, 'utf8');
25
+ return outputFile;
26
+ };
27
+ exports.default = genDynamicConfigFile;
28
+ //# sourceMappingURL=genDynamicConfigFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genDynamicConfigFile.js","sourceRoot":"","sources":["../../setup/genDynamicConfigFile.ts"],"names":[],"mappings":";;;;;AAAA,0CAAoB;AACpB,8CAAwB;AAExB;;GAEG;AACH,IAAM,oBAAoB,GAAG;IAC3B,IAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAExD,wCAAwC;IACxC,IAAM,iBAAiB,GAAG;QACxB,mDAAmD;QACnD,EAAE;QACF,6CAA6C;QAC7C,EAAE;QACF,oCAAoC;QACpC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,wCAAwC;IACxC,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAExD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var genCommandImportFile_1 = __importDefault(require("./genCommandImportFile"));
7
+ var genDynamicConfigFile_1 = __importDefault(require("./genDynamicConfigFile"));
8
+ var addToGitIgnore_1 = __importDefault(require("./addToGitIgnore"));
9
+ var setupCypressDependencies_1 = __importDefault(require("./setupCypressDependencies"));
10
+ var checkRequiredFiles_1 = __importDefault(require("./checkRequiredFiles"));
11
+ (0, checkRequiredFiles_1.default)();
12
+ (0, genCommandImportFile_1.default)();
13
+ (0, genDynamicConfigFile_1.default)();
14
+ (0, addToGitIgnore_1.default)();
15
+ (0, setupCypressDependencies_1.default)();
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../setup/index.ts"],"names":[],"mappings":";;;;;AAAA,gFAA0D;AAC1D,gFAA0D;AAC1D,oEAA8C;AAC9C,wFAAkE;AAClE,4EAAsD;AAEtD,IAAA,4BAAkB,GAAE,CAAC;AACrB,IAAA,8BAAoB,GAAE,CAAC;AACvB,IAAA,8BAAoB,GAAE,CAAC;AACvB,IAAA,wBAAc,GAAE,CAAC;AACjB,IAAA,kCAAwB,GAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Ensure required packages exist in the consumer repo
3
+ * @author Yuen Ler Chow
4
+ */
5
+ declare const setupCypressDependencies: () => void;
6
+ export default setupCypressDependencies;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable no-console */
7
+ var path_1 = __importDefault(require("path"));
8
+ /**
9
+ * Ensure required packages exist in the consumer repo
10
+ * @author Yuen Ler Chow
11
+ */
12
+ var setupCypressDependencies = function () {
13
+ var root = path_1.default.join(__dirname, '../..');
14
+ var requiredPkgs = [
15
+ 'cypress-parallel',
16
+ 'cypress-multi-reporters',
17
+ 'mochawesome',
18
+ 'mochawesome-merge',
19
+ 'mochawesome-report-generator',
20
+ ];
21
+ var missingPkgs = requiredPkgs.filter(function (pkg) {
22
+ try {
23
+ // Resolve from the consumer project root
24
+ require.resolve(pkg, { paths: [root] });
25
+ return false;
26
+ }
27
+ catch (_a) {
28
+ return true;
29
+ }
30
+ });
31
+ if (missingPkgs.length > 0) {
32
+ var installCmd = "npm i -D ".concat(missingPkgs.join(' '));
33
+ console.error("\nMissing required devDependencies in this project: ".concat(missingPkgs.join(', ')));
34
+ console.error('Run the following command, then try again:');
35
+ console.error("\n".concat(installCmd, "\n"));
36
+ process.exit(1);
37
+ }
38
+ };
39
+ exports.default = setupCypressDependencies;
40
+ //# sourceMappingURL=setupCypressDependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupCypressDependencies.js","sourceRoot":"","sources":["../../setup/setupCypressDependencies.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,8CAAwB;AAExB;;;GAGG;AACH,IAAM,wBAAwB,GAAG;IAC/B,IAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAM,YAAY,GAAG;QACnB,kBAAkB;QAClB,yBAAyB;QACzB,aAAa;QACb,mBAAmB;QACnB,8BAA8B;KAC/B,CAAC;IAEF,IAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,UAAC,GAAG;QAC1C,IAAI,CAAC;YACH,yCAAyC;YACzC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAM,UAAU,GAAG,mBAAY,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,8DAAuD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;QAC/F,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,YAAK,UAAU,OAAI,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,wBAAwB,CAAC"}
@@ -0,0 +1,20 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Assert that an element does not have a specific className
6
+ * @author Yuen Ler Chow
7
+ * @param opts object containing all arguments
8
+ * @param opts.item the css selector for finding the element
9
+ * @param opts.className the className to check for
10
+ * @return Cypress chainable containing the element that was checked
11
+ */
12
+ assertDoesNotHaveClass(opts: {
13
+ item: string;
14
+ className: string;
15
+ }): Chainable<JQuery<HTMLElement>>;
16
+ }
17
+ }
18
+ }
19
+ declare const assertDoesNotHaveClass: () => void;
20
+ export default assertDoesNotHaveClass;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var assertDoesNotHaveClass = function () {
8
+ Cypress.Commands.add('assertDoesNotHaveClass', function (opts) {
9
+ cy.log("Assert ".concat(opts.item, " does not have class ").concat(opts.className));
10
+ return cy.get(opts.item).should('not.have.class', opts.className);
11
+ });
12
+ };
13
+ /*----------------------------------------*/
14
+ /* --------------- Export --------------- */
15
+ /*----------------------------------------*/
16
+ exports.default = assertDoesNotHaveClass;
17
+ //# sourceMappingURL=assertDoesNotHaveClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertDoesNotHaveClass.js","sourceRoot":"","sources":["../../../src/commands/assertDoesNotHaveClass.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AA2BjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,sBAAsB,GAAG;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,wBAAwB,EACxB,UACE,IAGC;QAED,EAAE,CAAC,GAAG,CAAC,iBAAU,IAAI,CAAC,IAAI,kCAAwB,IAAI,CAAC,SAAS,CAAE,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,sBAAsB,CAAC"}
@@ -0,0 +1,20 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Assert that an element has a specific className
6
+ * @author Yuen Ler Chow
7
+ * @param opts object containing all arguments
8
+ * @param opts.item the css selector for finding the element
9
+ * @param opts.className the className to check for
10
+ * @return Cypress chainable containing the element that was checked
11
+ */
12
+ assertHasClass(opts: {
13
+ item: string;
14
+ className: string;
15
+ }): Chainable<JQuery<HTMLElement>>;
16
+ }
17
+ }
18
+ }
19
+ declare const assertHasClass: () => void;
20
+ export default assertHasClass;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var assertHasClass = function () {
8
+ Cypress.Commands.add('assertHasClass', function (opts) {
9
+ cy.log("Assert ".concat(opts.item, " has class ").concat(opts.className));
10
+ return cy.get(opts.item).should('have.class', opts.className);
11
+ });
12
+ };
13
+ /*----------------------------------------*/
14
+ /* --------------- Export --------------- */
15
+ /*----------------------------------------*/
16
+ exports.default = assertHasClass;
17
+ //# sourceMappingURL=assertHasClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertHasClass.js","sourceRoot":"","sources":["../../../src/commands/assertHasClass.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AA2BjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,cAAc,GAAG;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,gBAAgB,EAChB,UACE,IAGC;QAED,EAAE,CAAC,GAAG,CAAC,iBAAU,IAAI,CAAC,IAAI,wBAAc,IAAI,CAAC,SAAS,CAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Assert a certain number of elements
6
+ * @author Yuen Ler Chow
7
+ * @param opts object containing all arguments
8
+ * @param opts.item a CSS selector corresponding to the item
9
+ * @param opts.num the precise number of elements expected
10
+ */
11
+ assertNumElements(opts: {
12
+ item: string;
13
+ num: number;
14
+ }): Chainable<Element>;
15
+ }
16
+ }
17
+ }
18
+ declare const assertNumElements: () => void;
19
+ export default assertNumElements;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var assertNumElements = function () {
8
+ Cypress.Commands.add('assertNumElements', function (opts) {
9
+ cy.log("Assert ".concat(opts.num, " elements match ").concat(opts.item));
10
+ cy.get(opts.item).should('have.length', opts.num);
11
+ });
12
+ };
13
+ /*----------------------------------------*/
14
+ /* --------------- Export --------------- */
15
+ /*----------------------------------------*/
16
+ exports.default = assertNumElements;
17
+ //# sourceMappingURL=assertNumElements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertNumElements.js","sourceRoot":"","sources":["../../../src/commands/assertNumElements.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AA0BjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,iBAAiB,GAAG;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,mBAAmB,EACnB,UACE,IAGC;QAED,EAAE,CAAC,GAAG,CAAC,iBAAU,IAAI,CAAC,GAAG,6BAAmB,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC;QACzD,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Obtain data from a class attribute that starts with a specific prefix
6
+ * and return it
7
+ * @author Allison Zhang
8
+ * @param selector the css selector for finding the element
9
+ * @param classPrefix the prefix to look for in the class attribute
10
+ * @returns the extracted data
11
+ * @example cy.extractDataFromClass('.item', 'data-').then((data) => { ... })
12
+ */
13
+ extractDataFromClass(selector: string, classPrefix: string): Chainable<string[]>;
14
+ }
15
+ }
16
+ }
17
+ declare const extractDataFromClass: () => void;
18
+ export default extractDataFromClass;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var extractDataFromClass = function () {
8
+ Cypress.Commands.add('extractDataFromClass', function (selector, classPrefix) {
9
+ return (cy
10
+ .get(selector)
11
+ .invoke('attr', 'class')
12
+ .then(function (classAttr) {
13
+ var classList = classAttr.split(' ');
14
+ var data = classList
15
+ .filter(function (className) { return className.startsWith(classPrefix); })
16
+ .map(function (className) { return className.replace(classPrefix, ''); });
17
+ return data;
18
+ }));
19
+ });
20
+ };
21
+ /*----------------------------------------*/
22
+ /* --------------- Export --------------- */
23
+ /*----------------------------------------*/
24
+ exports.default = extractDataFromClass;
25
+ //# sourceMappingURL=extractDataFromClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractDataFromClass.js","sourceRoot":"","sources":["../../../src/commands/extractDataFromClass.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AA0BjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,oBAAoB,GAAG;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAC,QAAgB,EAAE,WAAmB;QACjF,OAAO,CACL,EAAE;aACC,GAAG,CAAC,QAAQ,CAAC;aACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aACvB,IAAI,CAAC,UAAC,SAAiB;YACtB,IAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAM,IAAI,GAAG,SAAS;iBACnB,MAAM,CAAC,UAAC,SAAS,IAAO,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpE,GAAG,CAAC,UAAC,SAAS,IAAO,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Obtain data from a class attribute that starts with a specific prefix
6
+ * and with specific contents, and return it
7
+ * @author Allison Zhang
8
+ * @param contents the contents of the element to find
9
+ * @param selector the css selector for finding the element
10
+ * @param classPrefix the prefix to look for in the class attribute
11
+ * @returns the extracted data
12
+ * @example cy.extractDataFromClassByContents('Submit', '.button', 'btn-').then((data) => { ... })
13
+ */
14
+ extractDataFromClassByContents(contents: string, selector: string, classPrefix: string): Chainable<string[]>;
15
+ }
16
+ }
17
+ }
18
+ declare const extractDataFromClassByContents: () => void;
19
+ export default extractDataFromClassByContents;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var extractDataFromClassByContents = function () {
8
+ Cypress.Commands.add('extractDataFromClassByContents', function (contents, selector, classPrefix) {
9
+ return (cy
10
+ .get(selector)
11
+ .contains(contents)
12
+ .invoke('attr', 'class')
13
+ .then(function (classAttr) {
14
+ var classList = classAttr.split(' ');
15
+ var data = classList
16
+ .filter(function (className) { return className.startsWith(classPrefix); })
17
+ .map(function (className) { return className.replace(classPrefix, ''); });
18
+ return data;
19
+ }));
20
+ });
21
+ };
22
+ /*----------------------------------------*/
23
+ /* --------------- Export --------------- */
24
+ /*----------------------------------------*/
25
+ exports.default = extractDataFromClassByContents;
26
+ //# sourceMappingURL=extractDataFromClassByContents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractDataFromClassByContents.js","sourceRoot":"","sources":["../../../src/commands/extractDataFromClassByContents.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AA4BjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,8BAA8B,GAAG;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gCAAgC,EAAE,UAAC,QAAgB,EAAE,QAAgB,EAAE,WAAmB;QAC7G,OAAO,CACL,EAAE;aACC,GAAG,CAAC,QAAQ,CAAC;aACb,QAAQ,CAAC,QAAQ,CAAC;aAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aACvB,IAAI,CAAC,UAAC,SAAiB;YACtB,IAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAM,IAAI,GAAG,SAAS;iBACnB,MAAM,CAAC,UAAC,SAAS,IAAO,OAAO,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpE,GAAG,CAAC,UAAC,SAAS,IAAO,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,8BAA8B,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Obtain JSON data from a request and return it.
6
+ * @author Allison Zhang
7
+ * @param url the URL to fetch the JSON data from
8
+ * @returns the JSON data
9
+ * @example cy.getJSON('https://api.example.com/data').then((data) => { ... })
10
+ */
11
+ getJSON(url: string): Chainable<any>;
12
+ }
13
+ }
14
+ }
15
+ declare const getJSON: () => void;
16
+ export default getJSON;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var getJSON = function () {
8
+ Cypress.Commands.add('getJSON', function (url) {
9
+ return (cy
10
+ .request(url)
11
+ .its('body')
12
+ .then(function (body) {
13
+ return body;
14
+ }));
15
+ });
16
+ };
17
+ /*----------------------------------------*/
18
+ /* --------------- Export --------------- */
19
+ /*----------------------------------------*/
20
+ exports.default = getJSON;
21
+ //# sourceMappingURL=getJSON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getJSON.js","sourceRoot":"","sources":["../../../src/commands/getJSON.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAuBjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,OAAO,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,UAAC,GAAW;QAC1C,OAAO,CACL,EAAE;aACC,OAAO,CAAC,GAAG,CAAC;aACZ,GAAG,CAAC,MAAM,CAAC;aACX,IAAI,CAAC,UAAC,IAAI;YACT,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,OAAO,CAAC"}