dceky 1.0.5 → 1.0.7

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.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Generate an example test file at /cypress/e2e/example.test.ts
3
+ * Does not create test file if e2e folder already exists
4
+ * @author Gabe Abrams
5
+ * @author Yuen Ler Chow
6
+ * @author Allison Zhang
7
+ */
8
+ declare const genExampleTest: () => void;
9
+ export default genExampleTest;
@@ -0,0 +1,46 @@
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
+ // Import shared helpers
9
+ var getRootPath_1 = __importDefault(require("../helpers/getRootPath"));
10
+ /**
11
+ * Generate an example test file at /cypress/e2e/example.test.ts
12
+ * Does not create test file if e2e folder already exists
13
+ * @author Gabe Abrams
14
+ * @author Yuen Ler Chow
15
+ * @author Allison Zhang
16
+ */
17
+ var genExampleTest = function () {
18
+ var root = (0, getRootPath_1.default)();
19
+ // Log the action
20
+ // eslint-disable-next-line no-console
21
+ console.log('Adding dummy test file: e2e/example.test.ts');
22
+ var e2eDir = path_1.default.join(root, 'cypress/e2e');
23
+ var outputFile = path_1.default.join(e2eDir, 'example.test.ts');
24
+ // Check if the directory exists
25
+ if (!fs_1.default.existsSync(e2eDir)) {
26
+ // Create the directory
27
+ fs_1.default.mkdirSync(e2eDir, { recursive: true });
28
+ }
29
+ else {
30
+ return;
31
+ }
32
+ // Create an empty file with a comment
33
+ var fileContents = [
34
+ 'describe(\'Example Test Suite\', () => {',
35
+ ' it(\'Should fill out form\', () => {',
36
+ ' cy.visit(\'https://formy-project.herokuapp.com/form\');',
37
+ ' cy.typeInto({ item: \'#first-name\', text: \'John\' });',
38
+ ' cy.tap(\'#radio-button-2\');',
39
+ ' });',
40
+ '});',
41
+ '',
42
+ ];
43
+ fs_1.default.writeFileSync(outputFile, fileContents.join('\n'), 'utf8');
44
+ };
45
+ exports.default = genExampleTest;
46
+ //# sourceMappingURL=genExampleTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genExampleTest.js","sourceRoot":"","sources":["../../../setup/checkRequiredFiles/genExampleTest.ts"],"names":[],"mappings":";;;;;AAAA,0CAAoB;AACpB,8CAAwB;AAExB,wBAAwB;AACxB,uEAAiD;AAEjD;;;;;;GAMG;AACH,IAAM,cAAc,GAAG;IACrB,IAAM,IAAI,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE3B,iBAAiB;IACjB,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,IAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,IAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAExD,gCAAgC;IAChC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,uBAAuB;QACvB,YAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO;IACT,CAAC;IAED,sCAAsC;IACtC,IAAM,YAAY,GAAG;QACnB,0CAA0C;QAC1C,wCAAwC;QACxC,6DAA6D;QAC7D,6DAA6D;QAC7D,kCAAkC;QAClC,OAAO;QACP,KAAK;QACL,EAAE;KACH,CAAC;IACF,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
@@ -10,6 +10,7 @@ var path_1 = __importDefault(require("path"));
10
10
  var getRootPath_1 = __importDefault(require("../helpers/getRootPath"));
11
11
  var genEmptyGlobalFile_1 = __importDefault(require("./genEmptyGlobalFile"));
12
12
  var genEmptyProfileFile_1 = __importDefault(require("./genEmptyProfileFile"));
13
+ var genExampleTest_1 = __importDefault(require("./genExampleTest"));
13
14
  /**
14
15
  * Ensure required configuration files exist in the consumer repo
15
16
  * @author Yuen Ler Chow
@@ -26,6 +27,7 @@ var checkRequiredFiles = function () {
26
27
  ];
27
28
  // Determine profile file name (default is stage)
28
29
  var profileName = process.env.CYPRESS_PROFILE || 'Stage';
30
+ var defaultProfileName = 'Default';
29
31
  var requiredProfile = "".concat(profileName, ".Profile.ts");
30
32
  // Check global files
31
33
  requiredGlobals.forEach(function (globalName) {
@@ -42,6 +44,14 @@ var checkRequiredFiles = function () {
42
44
  if (!profileFound) {
43
45
  (0, genEmptyProfileFile_1.default)(profileName);
44
46
  }
47
+ // Check default profile file
48
+ var defaultProfileFilePath = path_1.default.join(profilesPath, "".concat(defaultProfileName, ".Profile.ts"));
49
+ var defaultProfileFound = (0, fs_1.existsSync)(defaultProfileFilePath);
50
+ if (!defaultProfileFound) {
51
+ (0, genEmptyProfileFile_1.default)(defaultProfileName);
52
+ }
53
+ // Generate example test file
54
+ (0, genExampleTest_1.default)();
45
55
  };
46
56
  exports.default = checkRequiredFiles;
47
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../setup/checkRequiredFiles/index.ts"],"names":[],"mappings":";;;;;AAAA,cAAc;AACd,yBAAgC;AAChC,8CAAwB;AAExB,wBAAwB;AACxB,uEAAiD;AACjD,4EAAsD;AACtD,8EAAwD;AAExD;;;GAGG;AACH,IAAM,kBAAkB,GAAG;IACzB,IAAM,IAAI,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE3B,IAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACvD,IAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAEzD,wBAAwB;IACxB,IAAM,eAAe,GAAG;QACtB,aAAa;QACb,WAAW;QACX,QAAQ;KACT,CAAC;IAEF,iDAAiD;IACjD,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC;IAC3D,IAAM,eAAe,GAAG,UAAG,WAAW,gBAAa,CAAC;IAEpD,qBAAqB;IACrB,eAAe,CAAC,OAAO,CAAC,UAAC,UAAU;QACjC,IAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAS,UAAU,QAAK,CAAC,CAAC;QAClE,IAAM,KAAK,GAAG,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,kBAAkB;YAClB,IAAA,4BAAkB,EAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,IAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACjE,IAAM,YAAY,GAAG,IAAA,eAAU,EAAC,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAA,6BAAmB,EAAC,WAAW,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../setup/checkRequiredFiles/index.ts"],"names":[],"mappings":";;;;;AAAA,cAAc;AACd,yBAAgC;AAChC,8CAAwB;AAExB,wBAAwB;AACxB,uEAAiD;AACjD,4EAAsD;AACtD,8EAAwD;AACxD,oEAA8C;AAE9C;;;GAGG;AACH,IAAM,kBAAkB,GAAG;IACzB,IAAM,IAAI,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE3B,IAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IACvD,IAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAEzD,wBAAwB;IACxB,IAAM,eAAe,GAAG;QACtB,aAAa;QACb,WAAW;QACX,QAAQ;KACT,CAAC;IAEF,iDAAiD;IACjD,IAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC;IAC3D,IAAM,kBAAkB,GAAG,SAAS,CAAC;IACrC,IAAM,eAAe,GAAG,UAAG,WAAW,gBAAa,CAAC;IAEpD,qBAAqB;IACrB,eAAe,CAAC,OAAO,CAAC,UAAC,UAAU;QACjC,IAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAS,UAAU,QAAK,CAAC,CAAC;QAClE,IAAM,KAAK,GAAG,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,kBAAkB;YAClB,IAAA,4BAAkB,EAAC,UAAU,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,IAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACjE,IAAM,YAAY,GAAG,IAAA,eAAU,EAAC,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAA,6BAAmB,EAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IACD,6BAA6B;IAC7B,IAAM,sBAAsB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAG,kBAAkB,gBAAa,CAAC,CAAC;IAC3F,IAAM,mBAAmB,GAAG,IAAA,eAAU,EAAC,sBAAsB,CAAC,CAAC;IAC/D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,IAAA,6BAAmB,EAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED,6BAA6B;IAC7B,IAAA,wBAAc,GAAE,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -28,6 +28,7 @@ var padWithZeros_1 = __importDefault(require("./padWithZeros"));
28
28
  var runScript_1 = __importDefault(require("./runScript"));
29
29
  var typeInto_1 = __importDefault(require("./typeInto"));
30
30
  var uniquify_1 = __importDefault(require("./uniquify"));
31
+ var tap_1 = __importDefault(require("./tap"));
31
32
  var visitCanvasEndpoint_1 = __importDefault(require("./visitCanvasEndpoint"));
32
33
  var waitForAtLeastOneElementPresent_1 = __importDefault(require("./waitForAtLeastOneElementPresent"));
33
34
  var waitForElementVisible_1 = __importDefault(require("./waitForElementVisible"));
@@ -61,6 +62,7 @@ var commands = function () {
61
62
  (0, runScript_1.default)();
62
63
  (0, typeInto_1.default)();
63
64
  (0, uniquify_1.default)();
65
+ (0, tap_1.default)();
64
66
  (0, visitCanvasEndpoint_1.default)();
65
67
  (0, waitForAtLeastOneElementPresent_1.default)();
66
68
  (0, waitForElementVisible_1.default)();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":";;;;;AAAA,sBAAsB;AACtB,oFAA8D;AAC9D,oEAA8C;AAC9C,0EAAoD;AACpD,gFAA0D;AAC1D,oGAA8E;AAC9E,sEAAgD;AAChD,gEAA0C;AAC1C,gEAA0C;AAC1C,4EAAsD;AACtD,kDAA4B;AAC5B,sDAAgC;AAChC,oEAA8C;AAC9C,sEAAgD;AAChD,wDAAkC;AAClC,wEAAkD;AAClD,wDAAkC;AAClC,8EAAwD;AACxD,wEAAkD;AAClD,wEAAkD;AAClD,oEAA8C;AAC9C,gEAA0C;AAC1C,0DAAoC;AACpC,wDAAkC;AAClC,wDAAkC;AAClC,8EAAwD;AACxD,sGAAgF;AAChF,kFAA4D;AAE5D;;;GAGG;AACH,IAAM,QAAQ,GAAG;IACf,6BAA6B;IAC7B,IAAA,gCAAsB,GAAE,CAAC;IACzB,IAAA,wBAAc,GAAE,CAAC;IACjB,IAAA,2BAAiB,GAAE,CAAC;IACpB,IAAA,8BAAoB,GAAE,CAAC;IACvB,IAAA,wCAA8B,GAAE,CAAC;IACjC,IAAA,yBAAe,GAAE,CAAC;IAClB,IAAA,sBAAY,GAAE,CAAC;IACf,IAAA,sBAAY,GAAE,CAAC;IACf,IAAA,4BAAkB,GAAE,CAAC;IACrB,IAAA,eAAK,GAAE,CAAC;IACR,IAAA,iBAAO,GAAE,CAAC;IACV,IAAA,wBAAc,GAAE,CAAC;IACjB,IAAA,yBAAe,GAAE,CAAC;IAClB,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,0BAAgB,GAAE,CAAC;IACnB,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,0BAAgB,GAAE,CAAC;IACnB,IAAA,0BAAgB,GAAE,CAAC;IACnB,IAAA,wBAAc,GAAE,CAAC;IACjB,IAAA,sBAAY,GAAE,CAAC;IACf,IAAA,mBAAS,GAAE,CAAC;IACZ,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,yCAA+B,GAAE,CAAC;IAClC,IAAA,+BAAqB,GAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":";;;;;AAAA,sBAAsB;AACtB,oFAA8D;AAC9D,oEAA8C;AAC9C,0EAAoD;AACpD,gFAA0D;AAC1D,oGAA8E;AAC9E,sEAAgD;AAChD,gEAA0C;AAC1C,gEAA0C;AAC1C,4EAAsD;AACtD,kDAA4B;AAC5B,sDAAgC;AAChC,oEAA8C;AAC9C,sEAAgD;AAChD,wDAAkC;AAClC,wEAAkD;AAClD,wDAAkC;AAClC,8EAAwD;AACxD,wEAAkD;AAClD,wEAAkD;AAClD,oEAA8C;AAC9C,gEAA0C;AAC1C,0DAAoC;AACpC,wDAAkC;AAClC,wDAAkC;AAClC,8CAAwB;AACxB,8EAAwD;AACxD,sGAAgF;AAChF,kFAA4D;AAE5D;;;GAGG;AACH,IAAM,QAAQ,GAAG;IACf,6BAA6B;IAC7B,IAAA,gCAAsB,GAAE,CAAC;IACzB,IAAA,wBAAc,GAAE,CAAC;IACjB,IAAA,2BAAiB,GAAE,CAAC;IACpB,IAAA,8BAAoB,GAAE,CAAC;IACvB,IAAA,wCAA8B,GAAE,CAAC;IACjC,IAAA,yBAAe,GAAE,CAAC;IAClB,IAAA,sBAAY,GAAE,CAAC;IACf,IAAA,sBAAY,GAAE,CAAC;IACf,IAAA,4BAAkB,GAAE,CAAC;IACrB,IAAA,eAAK,GAAE,CAAC;IACR,IAAA,iBAAO,GAAE,CAAC;IACV,IAAA,wBAAc,GAAE,CAAC;IACjB,IAAA,yBAAe,GAAE,CAAC;IAClB,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,0BAAgB,GAAE,CAAC;IACnB,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,0BAAgB,GAAE,CAAC;IACnB,IAAA,0BAAgB,GAAE,CAAC;IACnB,IAAA,wBAAc,GAAE,CAAC;IACjB,IAAA,sBAAY,GAAE,CAAC;IACf,IAAA,mBAAS,GAAE,CAAC;IACZ,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,kBAAQ,GAAE,CAAC;IACX,IAAA,aAAG,GAAE,CAAC;IACN,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,yCAA+B,GAAE,CAAC;IAClC,IAAA,+BAAqB,GAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,15 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable {
4
+ /**
5
+ * Click on an element.
6
+ * @author Yuen Ler Chow
7
+ * @param item the CSS selector of interest
8
+ * @return Cypress chainable containing the clicked element
9
+ */
10
+ tap(item: string): Chainable<JQuery<HTMLElement>>;
11
+ }
12
+ }
13
+ }
14
+ declare const tap: () => void;
15
+ export default tap;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /// <reference types="cypress" />
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ /*----------------------------------------*/
5
+ /* --------------- Command -------------- */
6
+ /*----------------------------------------*/
7
+ var tap = function () {
8
+ Cypress.Commands.add('tap', function (item) {
9
+ return cy.get(item).click();
10
+ });
11
+ };
12
+ /*----------------------------------------*/
13
+ /* --------------- Export --------------- */
14
+ /*----------------------------------------*/
15
+ exports.default = tap;
16
+ //# sourceMappingURL=tap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tap.js","sourceRoot":"","sources":["../../../src/commands/tap.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAsBjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,GAAG,GAAG;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG,CAClB,KAAK,EACL,UACE,IAAY;QAEZ,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,GAAG,CAAC"}
@@ -7,7 +7,7 @@ declare global {
7
7
  * @param text the original string
8
8
  * @returns the uniquified string
9
9
  */
10
- uniquify(text: string): string;
10
+ uniquify(text: string): Chainable<string>;
11
11
  }
12
12
  }
13
13
  }
@@ -16,7 +16,7 @@ var uniquify = function () {
16
16
  Cypress.Commands.add('uniquify', function (text) {
17
17
  var thisCounter = uniqueCounter;
18
18
  uniqueCounter += 1;
19
- return "".concat(text, " [").concat(shorten(Number.parseInt("".concat(Date.now()).concat(thisCounter).concat(id), 10)), "]");
19
+ return cy.wrap("".concat(text, " [").concat(shorten(Number.parseInt("".concat(Date.now()).concat(thisCounter).concat(id), 10)), "]"));
20
20
  });
21
21
  };
22
22
  /*----------------------------------------*/
@@ -1 +1 @@
1
- {"version":3,"file":"uniquify.js","sourceRoot":"","sources":["../../../src/commands/uniquify.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAoBjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,IAAM,OAAO,GAAG,UAAC,GAAW;IAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAEtD,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,QAAQ,GAAG;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,UAAC,IAAY;QAC5C,IAAM,WAAW,GAAG,aAAa,CAAC;QAClC,aAAa,IAAI,CAAC,CAAC;QACnB,OAAO,UAAG,IAAI,eAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAG,IAAI,CAAC,GAAG,EAAE,SAAG,WAAW,SAAG,EAAE,CAAE,EAAE,EAAE,CAAC,CAAC,MAAG,CAAC;IACzF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"uniquify.js","sourceRoot":"","sources":["../../../src/commands/uniquify.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAoBjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,IAAM,OAAO,GAAG,UAAC,GAAW;IAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAEtD,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,QAAQ,GAAG;IACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,UAAC,IAAY;QAC5C,IAAM,WAAW,GAAG,aAAa,CAAC;QAClC,aAAa,IAAI,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC,UAAG,IAAI,eAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAG,IAAI,CAAC,GAAG,EAAE,SAAG,WAAW,SAAG,EAAE,CAAE,EAAE,EAAE,CAAC,CAAC,MAAG,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,QAAQ,CAAC"}
@@ -35,7 +35,7 @@ var CWD = (0, getRootPath_1.default)();
35
35
  * @author Gabe Abrams
36
36
  */
37
37
  var genConfiguration = function () {
38
- var _a, _b;
38
+ var _a, _b, _c, _d;
39
39
  // Define paths
40
40
  var GLOBALS_PATH = path_1.default.join(CWD, '/cypress/globals');
41
41
  var PROFILES_PATH = path_1.default.join(CWD, '/cypress/profiles');
@@ -44,7 +44,8 @@ var genConfiguration = function () {
44
44
  var GlobalResources = require(path_1.default.join(GLOBALS_PATH, '/GlobalResources'));
45
45
  var GlobalValues = require(path_1.default.join(GLOBALS_PATH, '/GlobalValues'));
46
46
  // Determine profile file name (default is stage)
47
- var profileName = process.env.CYPRESS_PROFILE || 'stage';
47
+ var profileName = process.env.CYPRESS_PROFILE || 'Stage';
48
+ var defaultProfileName = 'Default';
48
49
  // Load in chosen profile configuration
49
50
  var profileModules = {};
50
51
  try {
@@ -56,8 +57,25 @@ var genConfiguration = function () {
56
57
  console.warn("[cypress.config] Could not load profile '".concat(profileName, ".Profile'"), e);
57
58
  process.exit(1);
58
59
  }
60
+ // Load default profile configuration
61
+ var defaultProfileModules = {};
62
+ try {
63
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
64
+ var mod = require(path_1.default.join(PROFILES_PATH, "/".concat(defaultProfileName, ".Profile")));
65
+ defaultProfileModules = ((_d = (_c = mod === null || mod === void 0 ? void 0 : mod.default) !== null && _c !== void 0 ? _c : mod) !== null && _d !== void 0 ? _d : {});
66
+ }
67
+ catch (e) {
68
+ console.warn("[cypress.config] Could not load profile '".concat(defaultProfileName, ".Profile'"), e);
69
+ process.exit(1);
70
+ }
59
71
  // NOTE: Order matters (later overrides earlier)
60
- var sources = [GlobalCredentials, GlobalResources, GlobalValues, profileModules];
72
+ var sources = [
73
+ GlobalCredentials,
74
+ GlobalResources,
75
+ GlobalValues,
76
+ profileModules,
77
+ defaultProfileModules,
78
+ ];
61
79
  // Split all sources into basic and dependent
62
80
  var splits = sources.map(function (source) {
63
81
  return (0, splitEnv_1.default)(source);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/genConfiguration/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/genConfiguration/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.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Cypress toolkit for Harvard DCE",
5
5
  "main": "./lib/src/index.js",
6
6
  "types": "./lib/src/index.d.ts",
@@ -0,0 +1,46 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+
4
+ // Import shared helpers
5
+ import getRootPath from '../helpers/getRootPath';
6
+
7
+ /**
8
+ * Generate an example test file at /cypress/e2e/example.test.ts
9
+ * Does not create test file if e2e folder already exists
10
+ * @author Gabe Abrams
11
+ * @author Yuen Ler Chow
12
+ * @author Allison Zhang
13
+ */
14
+ const genExampleTest = () => {
15
+ const root = getRootPath();
16
+
17
+ // Log the action
18
+ // eslint-disable-next-line no-console
19
+ console.log('Adding dummy test file: e2e/example.test.ts');
20
+
21
+ const e2eDir = path.join(root, 'cypress/e2e');
22
+ const outputFile = path.join(e2eDir, 'example.test.ts');
23
+
24
+ // Check if the directory exists
25
+ if (!fs.existsSync(e2eDir)) {
26
+ // Create the directory
27
+ fs.mkdirSync(e2eDir, { recursive: true });
28
+ } else {
29
+ return;
30
+ }
31
+
32
+ // Create an empty file with a comment
33
+ const fileContents = [
34
+ 'describe(\'Example Test Suite\', () => {',
35
+ ' it(\'Should fill out form\', () => {',
36
+ ' cy.visit(\'https://formy-project.herokuapp.com/form\');',
37
+ ' cy.typeInto({ item: \'#first-name\', text: \'John\' });',
38
+ ' cy.tap(\'#radio-button-2\');',
39
+ ' });',
40
+ '});',
41
+ '',
42
+ ];
43
+ fs.writeFileSync(outputFile, fileContents.join('\n'), 'utf8');
44
+ };
45
+
46
+ export default genExampleTest;
@@ -6,6 +6,7 @@ import path from 'path';
6
6
  import getRootPath from '../helpers/getRootPath';
7
7
  import genEmptyGlobalFile from './genEmptyGlobalFile';
8
8
  import genEmptyProfileFile from './genEmptyProfileFile';
9
+ import genExampleTest from './genExampleTest';
9
10
 
10
11
  /**
11
12
  * Ensure required configuration files exist in the consumer repo
@@ -26,6 +27,7 @@ const checkRequiredFiles = (): void => {
26
27
 
27
28
  // Determine profile file name (default is stage)
28
29
  const profileName = process.env.CYPRESS_PROFILE || 'Stage';
30
+ const defaultProfileName = 'Default';
29
31
  const requiredProfile = `${profileName}.Profile.ts`;
30
32
 
31
33
  // Check global files
@@ -44,6 +46,15 @@ const checkRequiredFiles = (): void => {
44
46
  if (!profileFound) {
45
47
  genEmptyProfileFile(profileName);
46
48
  }
49
+ // Check default profile file
50
+ const defaultProfileFilePath = path.join(profilesPath, `${defaultProfileName}.Profile.ts`);
51
+ const defaultProfileFound = existsSync(defaultProfileFilePath);
52
+ if (!defaultProfileFound) {
53
+ genEmptyProfileFile(defaultProfileName);
54
+ }
55
+
56
+ // Generate example test file
57
+ genExampleTest();
47
58
  };
48
59
 
49
60
  export default checkRequiredFiles;
@@ -23,6 +23,7 @@ import padWithZeros from './padWithZeros';
23
23
  import runScript from './runScript';
24
24
  import typeInto from './typeInto';
25
25
  import uniquify from './uniquify';
26
+ import tap from './tap';
26
27
  import visitCanvasEndpoint from './visitCanvasEndpoint';
27
28
  import waitForAtLeastOneElementPresent from './waitForAtLeastOneElementPresent';
28
29
  import waitForElementVisible from './waitForElementVisible';
@@ -57,6 +58,7 @@ const commands = () => {
57
58
  runScript();
58
59
  typeInto();
59
60
  uniquify();
61
+ tap();
60
62
  visitCanvasEndpoint();
61
63
  waitForAtLeastOneElementPresent();
62
64
  waitForElementVisible();
@@ -0,0 +1,42 @@
1
+ /// <reference types="cypress" />
2
+
3
+ /*----------------------------------------*/
4
+ /* ---------------- Type ---------------- */
5
+ /*----------------------------------------*/
6
+
7
+ declare global {
8
+ namespace Cypress {
9
+ interface Chainable {
10
+ /**
11
+ * Click on an element.
12
+ * @author Yuen Ler Chow
13
+ * @param item the CSS selector of interest
14
+ * @return Cypress chainable containing the clicked element
15
+ */
16
+ tap(
17
+ item: string,
18
+ ): Chainable<JQuery<HTMLElement>>;
19
+ }
20
+ }
21
+ }
22
+
23
+ /*----------------------------------------*/
24
+ /* --------------- Command -------------- */
25
+ /*----------------------------------------*/
26
+
27
+ const tap = () => {
28
+ Cypress.Commands.add(
29
+ 'tap',
30
+ (
31
+ item: string,
32
+ ) => {
33
+ return cy.get(item).click();
34
+ },
35
+ );
36
+ };
37
+
38
+ /*----------------------------------------*/
39
+ /* --------------- Export --------------- */
40
+ /*----------------------------------------*/
41
+
42
+ export default tap;
@@ -13,7 +13,7 @@ declare global {
13
13
  * @param text the original string
14
14
  * @returns the uniquified string
15
15
  */
16
- uniquify(text: string): string;
16
+ uniquify(text: string): Chainable<string>;
17
17
  }
18
18
  }
19
19
  }
@@ -38,7 +38,7 @@ const uniquify = () => {
38
38
  Cypress.Commands.add('uniquify', (text: string) => {
39
39
  const thisCounter = uniqueCounter;
40
40
  uniqueCounter += 1;
41
- return `${text} [${shorten(Number.parseInt(`${Date.now()}${thisCounter}${id}`, 10))}]`;
41
+ return cy.wrap(`${text} [${shorten(Number.parseInt(`${Date.now()}${thisCounter}${id}`, 10))}]`);
42
42
  });
43
43
  };
44
44
 
@@ -38,7 +38,8 @@ const genConfiguration = () => {
38
38
  const GlobalValues: GlobalsOrProfile = require(path.join(GLOBALS_PATH, '/GlobalValues'));
39
39
 
40
40
  // Determine profile file name (default is stage)
41
- const profileName = process.env.CYPRESS_PROFILE || 'stage';
41
+ const profileName = process.env.CYPRESS_PROFILE || 'Stage';
42
+ const defaultProfileName = 'Default';
42
43
 
43
44
  // Load in chosen profile configuration
44
45
  let profileModules: GlobalsOrProfile = {};
@@ -51,8 +52,25 @@ const genConfiguration = () => {
51
52
  process.exit(1);
52
53
  }
53
54
 
55
+ // Load default profile configuration
56
+ let defaultProfileModules: GlobalsOrProfile = {};
57
+ try {
58
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
59
+ const mod = require(path.join(PROFILES_PATH, `/${defaultProfileName}.Profile`));
60
+ defaultProfileModules = (mod?.default ?? mod ?? {}) as GlobalsOrProfile;
61
+ } catch (e) {
62
+ console.warn(`[cypress.config] Could not load profile '${defaultProfileName}.Profile'`, e);
63
+ process.exit(1);
64
+ }
65
+
54
66
  // NOTE: Order matters (later overrides earlier)
55
- const sources: GlobalsOrProfile[] = [GlobalCredentials, GlobalResources, GlobalValues, profileModules];
67
+ const sources: GlobalsOrProfile[] = [
68
+ GlobalCredentials,
69
+ GlobalResources,
70
+ GlobalValues,
71
+ profileModules,
72
+ defaultProfileModules,
73
+ ];
56
74
 
57
75
  // Split all sources into basic and dependent
58
76
  const splits: SplitEnv[] = sources.map((source) => {