dceky 1.0.13 → 1.0.15
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/setupCypressDependencies.js +1 -0
- package/lib/setup/setupCypressDependencies.js.map +1 -1
- package/lib/src/commands/checkIfElementExists.d.ts +14 -0
- package/lib/src/commands/checkIfElementExists.js +18 -0
- package/lib/src/commands/checkIfElementExists.js.map +1 -0
- package/lib/src/commands/index.js +4 -0
- package/lib/src/commands/index.js.map +1 -1
- package/lib/src/commands/launchAs.js +3 -0
- package/lib/src/commands/launchAs.js.map +1 -1
- package/lib/src/commands/tapInIFrame.d.ts +16 -0
- package/lib/src/commands/tapInIFrame.js +21 -0
- package/lib/src/commands/tapInIFrame.js.map +1 -0
- package/lib/start/helpers/runCypressHeadless.js +2 -0
- package/lib/start/helpers/runCypressHeadless.js.map +1 -1
- package/package.json +2 -1
- package/setup/setupCypressDependencies.ts +1 -0
- package/src/commands/checkIfElementExists.ts +38 -0
- package/src/commands/index.ts +4 -0
- package/src/commands/launchAs.ts +4 -0
- package/src/commands/tapInIFrame.ts +46 -0
- package/start/helpers/runCypressHeadless.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupCypressDependencies.js","sourceRoot":"","sources":["../../setup/setupCypressDependencies.ts"],"names":[],"mappings":";;;;;AAAA,cAAc;AACd,8CAAwB;AAExB,wBAAwB;AACxB,+DAAyC;AACzC,sEAAgD;AAEhD;;;GAGG;AACH,IAAM,wBAAwB,GAAG;IAC/B,IAAM,IAAI,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE3B,IAAM,YAAY,GAAG;QACnB,SAAS;QACT,YAAY;QACZ,kBAAkB;QAClB,yBAAyB;QACzB,aAAa;QACb,mBAAmB;QACnB,8BAA8B;
|
|
1
|
+
{"version":3,"file":"setupCypressDependencies.js","sourceRoot":"","sources":["../../setup/setupCypressDependencies.ts"],"names":[],"mappings":";;;;;AAAA,cAAc;AACd,8CAAwB;AAExB,wBAAwB;AACxB,+DAAyC;AACzC,sEAAgD;AAEhD;;;GAGG;AACH,IAAM,wBAAwB,GAAG;IAC/B,IAAM,IAAI,GAAG,IAAA,qBAAW,GAAE,CAAC;IAE3B,IAAM,YAAY,GAAG;QACnB,SAAS;QACT,YAAY;QACZ,kBAAkB;QAClB,yBAAyB;QACzB,aAAa;QACb,mBAAmB;QACnB,8BAA8B;QAC9B,gBAAgB;KACjB,CAAC;IAEF,oBAAoB;IACpB,qEAAqE;IACrE,IAAM,OAAO,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IACzD,IAAM,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IAE9C,IAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,UAAC,GAAG;QAC1C,kDAAkD;QAClD,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,iBAAiB;QACjB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,4CAAqC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;QAE3E,4BAA4B;QAC5B,IAAM,UAAU,GAAG,aAAM,IAAI,0BAAgB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;QACrE,IAAA,cAAI,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;AACH,CAAC,CAAC;AAEF,kBAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
namespace Cypress {
|
|
3
|
+
interface Chainable {
|
|
4
|
+
/**
|
|
5
|
+
* Check if an element exists on the page
|
|
6
|
+
* @author Allison Zhang
|
|
7
|
+
* @param selector - The selector for the element to check
|
|
8
|
+
*/
|
|
9
|
+
checkIfElementExists(selector: string): Chainable<boolean>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
declare const checkIfElementExists: () => void;
|
|
14
|
+
export default checkIfElementExists;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/// <reference types="cypress" />
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/*----------------------------------------*/
|
|
5
|
+
/* --------------- Command -------------- */
|
|
6
|
+
/*----------------------------------------*/
|
|
7
|
+
var checkIfElementExists = function () {
|
|
8
|
+
Cypress.Commands.add('checkIfElementExists', function (selector) {
|
|
9
|
+
cy.runScript("document.querySelectorAll('".concat(selector, "').length > 0;")).then(function (result) {
|
|
10
|
+
return cy.wrap(result);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
/*----------------------------------------*/
|
|
15
|
+
/* --------------- Export --------------- */
|
|
16
|
+
/*----------------------------------------*/
|
|
17
|
+
exports.default = checkIfElementExists;
|
|
18
|
+
//# sourceMappingURL=checkIfElementExists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkIfElementExists.js","sourceRoot":"","sources":["../../../src/commands/checkIfElementExists.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAqBjC,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,oBAAoB,GAAG;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAC,QAAgB;QAC5D,EAAE,CAAC,SAAS,CAAC,qCAA8B,QAAQ,mBAAgB,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;YAC/E,OAAO,EAAE,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,oBAAoB,CAAC"}
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
var assertDoesNotHaveClass_1 = __importDefault(require("./assertDoesNotHaveClass"));
|
|
8
8
|
var assertHasClass_1 = __importDefault(require("./assertHasClass"));
|
|
9
9
|
var assertNumElements_1 = __importDefault(require("./assertNumElements"));
|
|
10
|
+
var checkIfElementExists_1 = __importDefault(require("./checkIfElementExists"));
|
|
10
11
|
var extractDataFromClass_1 = __importDefault(require("./extractDataFromClass"));
|
|
11
12
|
var extractDataFromClassByContents_1 = __importDefault(require("./extractDataFromClassByContents"));
|
|
12
13
|
var genTextOfLength_1 = __importDefault(require("./genTextOfLength"));
|
|
@@ -29,6 +30,7 @@ var runScript_1 = __importDefault(require("./runScript"));
|
|
|
29
30
|
var typeInto_1 = __importDefault(require("./typeInto"));
|
|
30
31
|
var uniquify_1 = __importDefault(require("./uniquify"));
|
|
31
32
|
var tap_1 = __importDefault(require("./tap"));
|
|
33
|
+
var tapInIFrame_1 = __importDefault(require("./tapInIFrame"));
|
|
32
34
|
var visitCanvasEndpoint_1 = __importDefault(require("./visitCanvasEndpoint"));
|
|
33
35
|
var waitForAtLeastOneElementPresent_1 = __importDefault(require("./waitForAtLeastOneElementPresent"));
|
|
34
36
|
var waitForElementVisible_1 = __importDefault(require("./waitForElementVisible"));
|
|
@@ -41,6 +43,7 @@ var commands = function () {
|
|
|
41
43
|
(0, assertDoesNotHaveClass_1.default)();
|
|
42
44
|
(0, assertHasClass_1.default)();
|
|
43
45
|
(0, assertNumElements_1.default)();
|
|
46
|
+
(0, checkIfElementExists_1.default)();
|
|
44
47
|
(0, extractDataFromClass_1.default)();
|
|
45
48
|
(0, extractDataFromClassByContents_1.default)();
|
|
46
49
|
(0, genTextOfLength_1.default)();
|
|
@@ -63,6 +66,7 @@ var commands = function () {
|
|
|
63
66
|
(0, typeInto_1.default)();
|
|
64
67
|
(0, uniquify_1.default)();
|
|
65
68
|
(0, tap_1.default)();
|
|
69
|
+
(0, tapInIFrame_1.default)();
|
|
66
70
|
(0, visitCanvasEndpoint_1.default)();
|
|
67
71
|
(0, waitForAtLeastOneElementPresent_1.default)();
|
|
68
72
|
(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,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"}
|
|
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,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,8DAAwC;AACxC,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,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,qBAAW,GAAE,CAAC;IACd,IAAA,6BAAmB,GAAE,CAAC;IACtB,IAAA,yCAA+B,GAAE,CAAC;IAClC,IAAA,+BAAqB,GAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
|
|
@@ -8,6 +8,9 @@ var launchAs = function () {
|
|
|
8
8
|
Cypress.Commands.add('launchAs', function (name, opts) {
|
|
9
9
|
if (opts === void 0) { opts = {}; }
|
|
10
10
|
var courseId = opts.courseId, appName = opts.appName;
|
|
11
|
+
// Visit the base URL to set default origin
|
|
12
|
+
var baseURL = Cypress.config('baseUrl');
|
|
13
|
+
cy.visit(baseURL);
|
|
11
14
|
// Get courseId from environment variables if not provided
|
|
12
15
|
if (!courseId) {
|
|
13
16
|
var envCourseId = Cypress.env('courseId');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchAs.js","sourceRoot":"","sources":["../../../src/commands/launchAs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"launchAs.js","sourceRoot":"","sources":["../../../src/commands/launchAs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import 'cypress-iframe';
|
|
2
|
+
declare global {
|
|
3
|
+
namespace Cypress {
|
|
4
|
+
interface Chainable {
|
|
5
|
+
/**
|
|
6
|
+
* Given an iframe, begins controlling it.
|
|
7
|
+
* @author Allison Zhang
|
|
8
|
+
* @param iframeSelector - The selector for the iframe to control
|
|
9
|
+
* @param selectorToTap - The selector for the element inside the iframe to tap
|
|
10
|
+
*/
|
|
11
|
+
tapInIFrame(iframeSelector: string, selectorToTap: string): Chainable<JQuery<HTMLElement>>;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
declare const tapInIFrame: () => void;
|
|
16
|
+
export default tapInIFrame;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/// <reference types="cypress" />
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
require("cypress-iframe");
|
|
5
|
+
/*----------------------------------------*/
|
|
6
|
+
/* --------------- Command -------------- */
|
|
7
|
+
/*----------------------------------------*/
|
|
8
|
+
var tapInIFrame = function () {
|
|
9
|
+
Cypress.Commands.add('tapInIFrame', function (iframeSelector, selectorToTap) {
|
|
10
|
+
cy.frameLoaded(iframeSelector);
|
|
11
|
+
return (cy
|
|
12
|
+
.iframe(iframeSelector)
|
|
13
|
+
.find(selectorToTap)
|
|
14
|
+
.click());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
/*----------------------------------------*/
|
|
18
|
+
/* --------------- Export --------------- */
|
|
19
|
+
/*----------------------------------------*/
|
|
20
|
+
exports.default = tapInIFrame;
|
|
21
|
+
//# sourceMappingURL=tapInIFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tapInIFrame.js","sourceRoot":"","sources":["../../../src/commands/tapInIFrame.ts"],"names":[],"mappings":";AAAA,iCAAiC;;AAEjC,0BAAwB;AAuBxB,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,IAAM,WAAW,GAAG;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,UAAC,cAAsB,EAAE,aAAqB;QAChF,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC/B,OAAO,CACL,EAAE;aACC,MAAM,CAAC,cAAc,CAAC;aACtB,IAAI,CAAC,aAAa,CAAC;aACnB,KAAK,EAAE,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4CAA4C;AAC5C,4CAA4C;AAC5C,4CAA4C;AAE5C,kBAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCypressHeadless.js","sourceRoot":"","sources":["../../../start/helpers/runCypressHeadless.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runCypressHeadless.js","sourceRoot":"","sources":["../../../start/helpers/runCypressHeadless.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.
|
|
3
|
+
"version": "1.0.15",
|
|
4
4
|
"description": "Cypress toolkit for Harvard DCE",
|
|
5
5
|
"main": "./lib/src/index.js",
|
|
6
6
|
"types": "./lib/src/index.d.ts",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"@types/prompt-sync": "^4.2.3",
|
|
35
35
|
"child_process": "^1.0.2",
|
|
36
36
|
"clear": "^0.1.0",
|
|
37
|
+
"cypress-iframe": "^1.0.1",
|
|
37
38
|
"deepmerge": "4.3.1",
|
|
38
39
|
"ejs": "^3.1.10",
|
|
39
40
|
"prompt-sync": "^4.2.0"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
|
|
3
|
+
/*----------------------------------------*/
|
|
4
|
+
/* ---------------- Type ---------------- */
|
|
5
|
+
/*----------------------------------------*/
|
|
6
|
+
|
|
7
|
+
declare global {
|
|
8
|
+
namespace Cypress {
|
|
9
|
+
interface Chainable {
|
|
10
|
+
/**
|
|
11
|
+
* Check if an element exists on the page
|
|
12
|
+
* @author Allison Zhang
|
|
13
|
+
* @param selector - The selector for the element to check
|
|
14
|
+
*/
|
|
15
|
+
checkIfElementExists(
|
|
16
|
+
selector: string,
|
|
17
|
+
): Chainable<boolean>;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/*----------------------------------------*/
|
|
23
|
+
/* --------------- Command -------------- */
|
|
24
|
+
/*----------------------------------------*/
|
|
25
|
+
|
|
26
|
+
const checkIfElementExists = () => {
|
|
27
|
+
Cypress.Commands.add('checkIfElementExists', (selector: string) => {
|
|
28
|
+
cy.runScript(`document.querySelectorAll('${selector}').length > 0;`).then((result) => {
|
|
29
|
+
return cy.wrap(result as boolean);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/*----------------------------------------*/
|
|
35
|
+
/* --------------- Export --------------- */
|
|
36
|
+
/*----------------------------------------*/
|
|
37
|
+
|
|
38
|
+
export default checkIfElementExists;
|
package/src/commands/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import assertDoesNotHaveClass from './assertDoesNotHaveClass';
|
|
3
3
|
import assertHasClass from './assertHasClass';
|
|
4
4
|
import assertNumElements from './assertNumElements';
|
|
5
|
+
import checkIfElementExists from './checkIfElementExists';
|
|
5
6
|
import extractDataFromClass from './extractDataFromClass';
|
|
6
7
|
import extractDataFromClassByContents from './extractDataFromClassByContents';
|
|
7
8
|
import genTextOfLength from './genTextOfLength';
|
|
@@ -24,6 +25,7 @@ import runScript from './runScript';
|
|
|
24
25
|
import typeInto from './typeInto';
|
|
25
26
|
import uniquify from './uniquify';
|
|
26
27
|
import tap from './tap';
|
|
28
|
+
import tapInIFrame from './tapInIFrame';
|
|
27
29
|
import visitCanvasEndpoint from './visitCanvasEndpoint';
|
|
28
30
|
import waitForAtLeastOneElementPresent from './waitForAtLeastOneElementPresent';
|
|
29
31
|
import waitForElementVisible from './waitForElementVisible';
|
|
@@ -37,6 +39,7 @@ const commands = () => {
|
|
|
37
39
|
assertDoesNotHaveClass();
|
|
38
40
|
assertHasClass();
|
|
39
41
|
assertNumElements();
|
|
42
|
+
checkIfElementExists();
|
|
40
43
|
extractDataFromClass();
|
|
41
44
|
extractDataFromClassByContents();
|
|
42
45
|
genTextOfLength();
|
|
@@ -59,6 +62,7 @@ const commands = () => {
|
|
|
59
62
|
typeInto();
|
|
60
63
|
uniquify();
|
|
61
64
|
tap();
|
|
65
|
+
tapInIFrame();
|
|
62
66
|
visitCanvasEndpoint();
|
|
63
67
|
waitForAtLeastOneElementPresent();
|
|
64
68
|
waitForElementVisible();
|
package/src/commands/launchAs.ts
CHANGED
|
@@ -47,6 +47,10 @@ const launchAs = () => {
|
|
|
47
47
|
) => {
|
|
48
48
|
let { courseId, appName } = opts;
|
|
49
49
|
|
|
50
|
+
// Visit the base URL to set default origin
|
|
51
|
+
const baseURL = Cypress.config('baseUrl');
|
|
52
|
+
cy.visit(baseURL);
|
|
53
|
+
|
|
50
54
|
// Get courseId from environment variables if not provided
|
|
51
55
|
if (!courseId) {
|
|
52
56
|
const envCourseId = Cypress.env('courseId');
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
|
|
3
|
+
import 'cypress-iframe';
|
|
4
|
+
|
|
5
|
+
/*----------------------------------------*/
|
|
6
|
+
/* ---------------- Type ---------------- */
|
|
7
|
+
/*----------------------------------------*/
|
|
8
|
+
|
|
9
|
+
declare global {
|
|
10
|
+
namespace Cypress {
|
|
11
|
+
interface Chainable {
|
|
12
|
+
/**
|
|
13
|
+
* Given an iframe, begins controlling it.
|
|
14
|
+
* @author Allison Zhang
|
|
15
|
+
* @param iframeSelector - The selector for the iframe to control
|
|
16
|
+
* @param selectorToTap - The selector for the element inside the iframe to tap
|
|
17
|
+
*/
|
|
18
|
+
tapInIFrame(
|
|
19
|
+
iframeSelector: string,
|
|
20
|
+
selectorToTap: string,
|
|
21
|
+
): Chainable<JQuery<HTMLElement>>;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/*----------------------------------------*/
|
|
27
|
+
/* --------------- Command -------------- */
|
|
28
|
+
/*----------------------------------------*/
|
|
29
|
+
|
|
30
|
+
const tapInIFrame = () => {
|
|
31
|
+
Cypress.Commands.add('tapInIFrame', (iframeSelector: string, selectorToTap: string) => {
|
|
32
|
+
cy.frameLoaded(iframeSelector);
|
|
33
|
+
return (
|
|
34
|
+
cy
|
|
35
|
+
.iframe(iframeSelector)
|
|
36
|
+
.find(selectorToTap)
|
|
37
|
+
.click()
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/*----------------------------------------*/
|
|
43
|
+
/* --------------- Export --------------- */
|
|
44
|
+
/*----------------------------------------*/
|
|
45
|
+
|
|
46
|
+
export default tapInIFrame;
|