dceky 1.0.6 → 1.0.9
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/lib/setup/checkRequiredFiles/genExampleTest.d.ts +9 -0
- package/lib/setup/checkRequiredFiles/genExampleTest.js +46 -0
- package/lib/setup/checkRequiredFiles/genExampleTest.js.map +1 -0
- package/lib/setup/checkRequiredFiles/index.js +3 -0
- package/lib/setup/checkRequiredFiles/index.js.map +1 -1
- package/lib/src/commands/index.js +2 -0
- package/lib/src/commands/index.js.map +1 -1
- package/lib/src/commands/tap.d.ts +15 -0
- package/lib/src/commands/tap.js +16 -0
- package/lib/src/commands/tap.js.map +1 -0
- package/lib/src/commands/uniquify.d.ts +1 -1
- package/lib/src/commands/uniquify.js +1 -1
- package/lib/src/commands/uniquify.js.map +1 -1
- package/lib/start/index.js +9 -5
- package/lib/start/index.js.map +1 -1
- package/package.json +1 -1
- package/setup/checkRequiredFiles/genExampleTest.ts +46 -0
- package/setup/checkRequiredFiles/index.ts +4 -0
- package/src/commands/index.ts +2 -0
- package/src/commands/tap.ts +42 -0
- package/src/commands/uniquify.ts +2 -2
- package/start/index.ts +10 -5
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate an example test file at /cypress/e2e/example.cy.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.cy.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.cy.ts');
|
|
22
|
+
var e2eDir = path_1.default.join(root, 'cypress/e2e');
|
|
23
|
+
var outputFile = path_1.default.join(e2eDir, 'example.cy.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,2CAA2C,CAAC,CAAC;IAEzD,IAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,IAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEtD,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
|
|
@@ -49,6 +50,8 @@ var checkRequiredFiles = function () {
|
|
|
49
50
|
if (!defaultProfileFound) {
|
|
50
51
|
(0, genEmptyProfileFile_1.default)(defaultProfileName);
|
|
51
52
|
}
|
|
53
|
+
// Generate example test file
|
|
54
|
+
(0, genExampleTest_1.default)();
|
|
52
55
|
};
|
|
53
56
|
exports.default = checkRequiredFiles;
|
|
54
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;
|
|
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"}
|
|
@@ -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;
|
|
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"}
|
package/lib/start/index.js
CHANGED
|
@@ -94,13 +94,13 @@ if (!envHeadlessRaw && !hasHeadlessFlag) {
|
|
|
94
94
|
var choices = (0, showChooser_1.default)({
|
|
95
95
|
question: 'Run in headless mode?',
|
|
96
96
|
options: [
|
|
97
|
-
{ tag: '
|
|
98
|
-
{ tag: '
|
|
97
|
+
{ tag: 'Y', description: 'Yes (headless)' },
|
|
98
|
+
{ tag: 'N', description: 'No (interactive)' },
|
|
99
99
|
],
|
|
100
100
|
title: 'Select mode',
|
|
101
101
|
allowMulti: false,
|
|
102
102
|
});
|
|
103
|
-
isHeadless = choices[0].tag === '
|
|
103
|
+
isHeadless = choices[0].tag === 'Y';
|
|
104
104
|
}
|
|
105
105
|
// If running headless and no browsers were selected, ask the user to choose
|
|
106
106
|
if (isHeadless && selectedBrowsers.length === 0) {
|
|
@@ -132,7 +132,11 @@ if (isHeadless && selectedBrowsers.length === 0) {
|
|
|
132
132
|
// In the case where their environment selected more than one profile, but they are not headless, make them re-choose
|
|
133
133
|
if (selectedProfiles.length === 0
|
|
134
134
|
|| (!isHeadless && selectedProfiles.length > 1)) {
|
|
135
|
-
|
|
135
|
+
// Filter out "Default" profile from the chooser options
|
|
136
|
+
var choosableProfiles_1 = profiles.filter(function (p) {
|
|
137
|
+
return p.profileName.toLowerCase() !== 'default';
|
|
138
|
+
});
|
|
139
|
+
var options = choosableProfiles_1.map(function (p, idx) {
|
|
136
140
|
return {
|
|
137
141
|
tag: String(idx + 1),
|
|
138
142
|
description: p.profileName,
|
|
@@ -146,7 +150,7 @@ if (selectedProfiles.length === 0
|
|
|
146
150
|
title: "Choose profile".concat(isHeadless ? 's' : ''),
|
|
147
151
|
allowMulti: isHeadless,
|
|
148
152
|
});
|
|
149
|
-
selectedProfiles = choices.map(function (choice) { return
|
|
153
|
+
selectedProfiles = choices.map(function (choice) { return choosableProfiles_1[choice.index]; });
|
|
150
154
|
}
|
|
151
155
|
// Execute Cypress with selected configuration
|
|
152
156
|
(0, executeCypress_1.default)({
|
package/lib/start/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../start/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../start/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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.cy.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.cy.ts');
|
|
20
|
+
|
|
21
|
+
const e2eDir = path.join(root, 'cypress/e2e');
|
|
22
|
+
const outputFile = path.join(e2eDir, 'example.cy.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
|
|
@@ -51,6 +52,9 @@ const checkRequiredFiles = (): void => {
|
|
|
51
52
|
if (!defaultProfileFound) {
|
|
52
53
|
genEmptyProfileFile(defaultProfileName);
|
|
53
54
|
}
|
|
55
|
+
|
|
56
|
+
// Generate example test file
|
|
57
|
+
genExampleTest();
|
|
54
58
|
};
|
|
55
59
|
|
|
56
60
|
export default checkRequiredFiles;
|
package/src/commands/index.ts
CHANGED
|
@@ -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;
|
package/src/commands/uniquify.ts
CHANGED
|
@@ -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
|
|
package/start/index.ts
CHANGED
|
@@ -107,14 +107,14 @@ if (!envHeadlessRaw && !hasHeadlessFlag) {
|
|
|
107
107
|
const choices = showChooser({
|
|
108
108
|
question: 'Run in headless mode?',
|
|
109
109
|
options: [
|
|
110
|
-
{ tag: '
|
|
111
|
-
{ tag: '
|
|
110
|
+
{ tag: 'Y', description: 'Yes (headless)' },
|
|
111
|
+
{ tag: 'N', description: 'No (interactive)' },
|
|
112
112
|
],
|
|
113
113
|
title: 'Select mode',
|
|
114
114
|
allowMulti: false,
|
|
115
115
|
});
|
|
116
116
|
|
|
117
|
-
isHeadless = choices[0].tag === '
|
|
117
|
+
isHeadless = choices[0].tag === 'Y';
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
// If running headless and no browsers were selected, ask the user to choose
|
|
@@ -152,7 +152,12 @@ if (
|
|
|
152
152
|
selectedProfiles.length === 0
|
|
153
153
|
|| (!isHeadless && selectedProfiles.length > 1)
|
|
154
154
|
) {
|
|
155
|
-
|
|
155
|
+
// Filter out "Default" profile from the chooser options
|
|
156
|
+
const choosableProfiles = profiles.filter((p) => {
|
|
157
|
+
return p.profileName.toLowerCase() !== 'default';
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
const options = choosableProfiles.map((p, idx) => {
|
|
156
161
|
return {
|
|
157
162
|
tag: String(idx + 1),
|
|
158
163
|
description: p.profileName,
|
|
@@ -170,7 +175,7 @@ if (
|
|
|
170
175
|
allowMulti: isHeadless,
|
|
171
176
|
});
|
|
172
177
|
|
|
173
|
-
selectedProfiles = choices.map((choice) => { return
|
|
178
|
+
selectedProfiles = choices.map((choice) => { return choosableProfiles[choice.index]; });
|
|
174
179
|
}
|
|
175
180
|
|
|
176
181
|
// Execute Cypress with selected configuration
|