@twilio/flex-plugin-e2e-tests 7.1.2 → 7.1.3-alpha.202609291926
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/dist/core/parameters.js +14 -14
- package/dist/core/parameters.js.map +1 -1
- package/dist/core/runner.js +22 -14
- package/dist/core/runner.js.map +1 -1
- package/dist/core/suites.js +1 -1
- package/dist/core/suites.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/step001.js +4 -4
- package/dist/tests/step001.js.map +1 -1
- package/dist/tests/step002.js +20 -16
- package/dist/tests/step002.js.map +1 -1
- package/dist/tests/step003.js +1 -1
- package/dist/tests/step004.js +2 -2
- package/dist/tests/step004.js.map +1 -1
- package/dist/tests/step005.js +7 -7
- package/dist/tests/step005.js.map +1 -1
- package/dist/tests/step006.js +7 -7
- package/dist/tests/step006.js.map +1 -1
- package/dist/tests/step007.js +15 -11
- package/dist/tests/step007.js.map +1 -1
- package/dist/tests/step008.js +29 -25
- package/dist/tests/step008.js.map +1 -1
- package/dist/tests/step009.js +13 -9
- package/dist/tests/step009.js.map +1 -1
- package/dist/tests/step010.js +4 -4
- package/dist/tests/step010.js.map +1 -1
- package/dist/tests/step011.js +5 -5
- package/dist/tests/step011.js.map +1 -1
- package/dist/tests/step012.js +18 -14
- package/dist/tests/step012.js.map +1 -1
- package/dist/tests/step013.js +20 -16
- package/dist/tests/step013.js.map +1 -1
- package/dist/utils/assertion.js +24 -16
- package/dist/utils/assertion.js.map +1 -1
- package/dist/utils/browser.js +7 -2
- package/dist/utils/browser.js.map +1 -1
- package/dist/utils/index.js +5 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pages/app.js +6 -6
- package/dist/utils/pages/app.js.map +1 -1
- package/dist/utils/pages/index.js +5 -1
- package/dist/utils/pages/index.js.map +1 -1
- package/dist/utils/pages/view/admin-dashboard.js +1 -1
- package/dist/utils/pages/view/agent-desktop.js +1 -1
- package/dist/utils/pages/view/base.d.ts +3 -2
- package/dist/utils/pages/view/base.js +40 -8
- package/dist/utils/pages/view/base.js.map +1 -1
- package/dist/utils/pages/view/plugins.js +3 -3
- package/dist/utils/pages/view/plugins.js.map +1 -1
- package/dist/utils/pages/view/twilio-console.d.ts +2 -2
- package/dist/utils/pages/view/twilio-console.js +87 -36
- package/dist/utils/pages/view/twilio-console.js.map +1 -1
- package/dist/utils/plugin-helper.js +7 -7
- package/dist/utils/plugin-helper.js.map +1 -1
- package/dist/utils/plugins-api.js +7 -3
- package/dist/utils/plugins-api.js.map +1 -1
- package/dist/utils/serverless-api.js +7 -7
- package/dist/utils/serverless-api.js.map +1 -1
- package/dist/utils/spawn.d.ts +1 -1
- package/dist/utils/spawn.js +14 -14
- package/dist/utils/spawn.js.map +1 -1
- package/dist/utils/timers.js +1 -1
- package/package.json +7 -6
package/dist/utils/assertion.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -34,10 +38,14 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
34
38
|
}
|
|
35
39
|
return ar;
|
|
36
40
|
};
|
|
37
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
38
|
-
for (var i = 0,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
42
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
43
|
+
if (ar || !(i in from)) {
|
|
44
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
45
|
+
ar[i] = from[i];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
49
|
};
|
|
42
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
51
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
@@ -47,10 +55,10 @@ var fs = __importStar(require("fs"));
|
|
|
47
55
|
var lodash_1 = require("lodash");
|
|
48
56
|
var _strictEqual = function (doesEqual, actual, expected, msg) {
|
|
49
57
|
if (doesEqual) {
|
|
50
|
-
assert_1.deepStrictEqual(actual, expected, msg);
|
|
58
|
+
(0, assert_1.deepStrictEqual)(actual, expected, msg);
|
|
51
59
|
}
|
|
52
60
|
else {
|
|
53
|
-
assert_1.notDeepStrictEqual(actual, expected, msg);
|
|
61
|
+
(0, assert_1.notDeepStrictEqual)(actual, expected, msg);
|
|
54
62
|
}
|
|
55
63
|
};
|
|
56
64
|
var equal = function (doesEqual) {
|
|
@@ -63,7 +71,7 @@ var equal = function (doesEqual) {
|
|
|
63
71
|
*/
|
|
64
72
|
var fileExists = function (doesEqual) {
|
|
65
73
|
return function (paths, msg) {
|
|
66
|
-
_strictEqual(doesEqual, true, fs.existsSync(path.join.apply(path, __spreadArray([], __read(paths)))), msg);
|
|
74
|
+
_strictEqual(doesEqual, true, fs.existsSync(path.join.apply(path, __spreadArray([], __read(paths), false))), msg);
|
|
67
75
|
};
|
|
68
76
|
};
|
|
69
77
|
/**
|
|
@@ -71,7 +79,7 @@ var fileExists = function (doesEqual) {
|
|
|
71
79
|
*/
|
|
72
80
|
var jsonFileContains = function (doesEqual) {
|
|
73
81
|
return function (paths, key, value, msg) {
|
|
74
|
-
_strictEqual(doesEqual, value, lodash_1.get(JSON.parse(fs.readFileSync(path.join.apply(path, __spreadArray([], __read(paths))), 'utf-8')), key), msg);
|
|
82
|
+
_strictEqual(doesEqual, value, (0, lodash_1.get)(JSON.parse(fs.readFileSync(path.join.apply(path, __spreadArray([], __read(paths), false)), 'utf-8')), key), msg);
|
|
75
83
|
};
|
|
76
84
|
};
|
|
77
85
|
var stringContains = function (doesEqual) { return function (line, str, msg) {
|
|
@@ -81,26 +89,26 @@ var stringContains = function (doesEqual) { return function (line, str, msg) {
|
|
|
81
89
|
* Checks whether the file contains the given string
|
|
82
90
|
*/
|
|
83
91
|
var fileContains = function (doesEqual) { return function (paths, value, msg) {
|
|
84
|
-
var file = path.join.apply(path, __spreadArray([], __read(paths)));
|
|
92
|
+
var file = path.join.apply(path, __spreadArray([], __read(paths), false));
|
|
85
93
|
var not = doesEqual ? ' not ' : ' ';
|
|
86
|
-
msg = msg || file
|
|
94
|
+
msg = msg || "".concat(file, " does").concat(not, "contain ").concat(value);
|
|
87
95
|
stringContains(doesEqual)(fs.readFileSync(file, 'utf-8'), value, msg);
|
|
88
96
|
}; };
|
|
89
97
|
/**
|
|
90
98
|
* Checks whether the directory is empty
|
|
91
99
|
*/
|
|
92
100
|
var dirIsEmpty = function (doesEqual) { return function (paths, msg) {
|
|
93
|
-
_strictEqual(doesEqual, 0, fs.readdirSync(path.join.apply(path, __spreadArray([], __read(paths)))).length, msg);
|
|
101
|
+
_strictEqual(doesEqual, 0, fs.readdirSync(path.join.apply(path, __spreadArray([], __read(paths), false))).length, msg);
|
|
94
102
|
}; };
|
|
95
103
|
/**
|
|
96
104
|
* Checks whether the object is null
|
|
97
105
|
*/
|
|
98
106
|
var isNull = function (doesEqual) { return function (obj, msg) {
|
|
99
107
|
if (doesEqual) {
|
|
100
|
-
assert_1.deepEqual(obj, null, msg);
|
|
108
|
+
(0, assert_1.deepEqual)(obj, null, msg);
|
|
101
109
|
}
|
|
102
110
|
else {
|
|
103
|
-
assert_1.notDeepEqual(obj, null, msg);
|
|
111
|
+
(0, assert_1.notDeepEqual)(obj, null, msg);
|
|
104
112
|
}
|
|
105
113
|
}; };
|
|
106
114
|
/**
|
|
@@ -108,10 +116,10 @@ var isNull = function (doesEqual) { return function (obj, msg) {
|
|
|
108
116
|
*/
|
|
109
117
|
var isUndefined = function (doesEqual) { return function (obj, msg) {
|
|
110
118
|
if (doesEqual) {
|
|
111
|
-
assert_1.deepEqual(obj, undefined, msg);
|
|
119
|
+
(0, assert_1.deepEqual)(obj, undefined, msg);
|
|
112
120
|
}
|
|
113
121
|
else {
|
|
114
|
-
assert_1.notDeepEqual(obj, undefined, msg);
|
|
122
|
+
(0, assert_1.notDeepEqual)(obj, undefined, msg);
|
|
115
123
|
}
|
|
116
124
|
}; };
|
|
117
125
|
exports.default = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../src/utils/assertion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../src/utils/assertion.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/browser.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -60,7 +60,12 @@ var Browser = /** @class */ (function () {
|
|
|
60
60
|
return [4 /*yield*/, puppeteer_1.default.launch({
|
|
61
61
|
headless: true,
|
|
62
62
|
protocolTimeout: 300000,
|
|
63
|
-
args: [
|
|
63
|
+
args: [
|
|
64
|
+
'--use-fake-ui-for-media-stream',
|
|
65
|
+
'--disable-features=site-per-process',
|
|
66
|
+
'--no-sandbox',
|
|
67
|
+
'--disable-setuid-sandbox',
|
|
68
|
+
],
|
|
64
69
|
})];
|
|
65
70
|
case 1:
|
|
66
71
|
_a._browser = _c.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAgD;AAChD,wDAA6G;AAE7G,0DAAoC;AACpC,iCAAuC;AAEvC;IAAA;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
/* eslint-disable import/no-unused-modules */
|
|
3
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
4
|
if (k2 === undefined) k2 = k;
|
|
5
|
-
Object.
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
6
10
|
}) : (function(o, m, k, k2) {
|
|
7
11
|
if (k2 === undefined) k2 = k;
|
|
8
12
|
o[k2] = m[k];
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA,6CAA6C
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;;;;;;;;;;;;;;;;;;AAE7C,iCAA+F;AAAtF,8FAAA,gBAAgB,OAAS;AAAE,kGAAA,SAAS,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,qGAAA,YAAY,OAAA;AAC7E,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,yBAAmC;AAA1B,mGAAA,aAAa,OAAA;AACtB,6CAA+C;AAAtC,mHAAA,OAAO,OAAO;AACvB,iDAA0D;AAAjD,8HAAA,OAAO,OAAgB;AAChC,4CAA0B;AAC1B,2CAAyB;AACzB,6BAAwC;AAA/B,gGAAA,IAAI,OAAY"}
|
package/dist/utils/pages/app.js
CHANGED
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -106,20 +106,20 @@ var App = /** @class */ (function () {
|
|
|
106
106
|
* @param screenshotName
|
|
107
107
|
*/
|
|
108
108
|
App.prototype.takeScreenshot = function (rootDir, screenshotName) {
|
|
109
|
-
if (screenshotName === void 0) { screenshotName = "on_failure."
|
|
109
|
+
if (screenshotName === void 0) { screenshotName = "on_failure.".concat(screenshotExtension); }
|
|
110
110
|
return __awaiter(this, void 0, void 0, function () {
|
|
111
111
|
var screenshotDir;
|
|
112
112
|
return __generator(this, function (_a) {
|
|
113
113
|
switch (_a.label) {
|
|
114
114
|
case 0:
|
|
115
|
-
screenshotDir = __1.joinPath(rootDir, 'screenshots');
|
|
115
|
+
screenshotDir = (0, __1.joinPath)(rootDir, 'screenshots');
|
|
116
116
|
if (!screenshotName.endsWith(screenshotExtension)) {
|
|
117
117
|
screenshotName += screenshotExtension;
|
|
118
118
|
}
|
|
119
|
-
if (!fs_1.existsSync(screenshotDir)) {
|
|
120
|
-
fs_1.mkdirSync(screenshotDir);
|
|
119
|
+
if (!(0, fs_1.existsSync)(screenshotDir)) {
|
|
120
|
+
(0, fs_1.mkdirSync)(screenshotDir);
|
|
121
121
|
}
|
|
122
|
-
return [4 /*yield*/, this._page.screenshot({ path: __1.joinPath(screenshotDir, screenshotName) })];
|
|
122
|
+
return [4 /*yield*/, this._page.screenshot({ path: (0, __1.joinPath)(screenshotDir, screenshotName) })];
|
|
123
123
|
case 1:
|
|
124
124
|
_a.sent();
|
|
125
125
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/utils/pages/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA2C;AAI3C,wBAA8B;AAC9B,0DAAwD;AACxD,sDAAoD;AACpD,0CAAyC;AACzC,wDAAsD;AAEtD,IAAM,mBAAmB,GAAG,MAAM,CAAC;AAOnC;IAkBE,aAAY,IAAU,EAAE,EAAgC;YAA9B,IAAI,UAAA,EAAE,aAAa,mBAAA;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,4BAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,8BAAa,CAAC,IAAI,EAAE,EAAE,aAAa,eAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG;YACZ,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;YACvC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YACzC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED,sBAAI,6BAAY;aAAhB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,+BAAc;aAAlB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IAED,sBAAI,wBAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;;;OAAA;IAED,sBAAI,8BAAa;aAAjB;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;;;OAAA;IAED;;OAEG;IACG,+BAAiB,GAAvB;;;;gBAIE,sBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC;oBAC5E,CAAC,CAAC,EAAC;;;KACJ;IAED;;;;OAIG;IACG,4BAAc,GAApB,UAAqB,OAAe,EAAE,cAAoD;QAApD,+BAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/utils/pages/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA2C;AAI3C,wBAA8B;AAC9B,0DAAwD;AACxD,sDAAoD;AACpD,0CAAyC;AACzC,wDAAsD;AAEtD,IAAM,mBAAmB,GAAG,MAAM,CAAC;AAOnC;IAkBE,aAAY,IAAU,EAAE,EAAgC;YAA9B,IAAI,UAAA,EAAE,aAAa,mBAAA;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,4BAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,8BAAa,CAAC,IAAI,EAAE,EAAE,aAAa,eAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG;YACZ,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;YACvC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;YAC3C,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;YACzC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED,sBAAI,6BAAY;aAAhB;YACE,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,+BAAc;aAAlB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;;;OAAA;IAED,sBAAI,wBAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;;;OAAA;IAED,sBAAI,8BAAa;aAAjB;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;;;OAAA;IAED;;OAEG;IACG,+BAAiB,GAAvB;;;;gBAIE,sBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;wBAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC;oBAC5E,CAAC,CAAC,EAAC;;;KACJ;IAED;;;;OAIG;IACG,4BAAc,GAApB,UAAqB,OAAe,EAAE,cAAoD;QAApD,+BAAA,EAAA,sCAA+B,mBAAmB,CAAE;;;;;;wBAClF,aAAa,GAAG,IAAA,YAAQ,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;wBAEvD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;4BACjD,cAAc,IAAI,mBAAmB,CAAC;yBACvC;wBAED,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE;4BAC9B,IAAA,cAAS,EAAC,aAAa,CAAC,CAAC;yBAC1B;wBAED,qBAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAA,YAAQ,EAAC,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC,EAAA;;wBAA9E,SAA8E,CAAC;;;;;KAChF;IACH,UAAC;AAAD,CAAC,AA9ED,IA8EC;AA9EY,kBAAG"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/pages/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/pages/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB"}
|
|
@@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
29
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
30
|
function step(op) {
|
|
31
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
35
|
switch (op[0]) {
|
|
@@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
29
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
30
|
function step(op) {
|
|
31
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
35
|
switch (op[0]) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementHandle, Page } from 'puppeteer';
|
|
1
|
+
import { ElementHandle, Page, PuppeteerLifeCycleEvent } from 'puppeteer';
|
|
2
2
|
export declare abstract class Base {
|
|
3
3
|
protected static readonly DEFAULT_LOCATE_TIMEOUT = 3000000;
|
|
4
4
|
protected static readonly DEFAULT_PAGE_LOAD_TIMEOUT = 3000000;
|
|
@@ -9,9 +9,10 @@ export declare abstract class Base {
|
|
|
9
9
|
* @param baseUrl
|
|
10
10
|
* @param path
|
|
11
11
|
*/
|
|
12
|
-
protected goto({ baseUrl, path }: {
|
|
12
|
+
protected goto({ baseUrl, path, waitUntil, }: {
|
|
13
13
|
baseUrl: string;
|
|
14
14
|
path?: string;
|
|
15
|
+
waitUntil?: PuppeteerLifeCycleEvent;
|
|
15
16
|
}): Promise<void>;
|
|
16
17
|
/**
|
|
17
18
|
* Get text from an element
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
18
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -37,6 +37,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.Base = void 0;
|
|
40
|
+
var flex_dev_utils_1 = require("@twilio/flex-dev-utils");
|
|
41
|
+
var timers_1 = require("../../timers");
|
|
40
42
|
var Base = /** @class */ (function () {
|
|
41
43
|
function Base(page) {
|
|
42
44
|
this.page = page;
|
|
@@ -47,17 +49,47 @@ var Base = /** @class */ (function () {
|
|
|
47
49
|
* @param path
|
|
48
50
|
*/
|
|
49
51
|
Base.prototype.goto = function (_a) {
|
|
50
|
-
var baseUrl = _a.baseUrl, path = _a.path;
|
|
52
|
+
var baseUrl = _a.baseUrl, path = _a.path, waitUntil = _a.waitUntil;
|
|
51
53
|
return __awaiter(this, void 0, void 0, function () {
|
|
52
|
-
var fullPath;
|
|
54
|
+
var fullPath, err_1;
|
|
53
55
|
return __generator(this, function (_b) {
|
|
54
56
|
switch (_b.label) {
|
|
55
57
|
case 0:
|
|
56
|
-
fullPath = path ? baseUrl
|
|
57
|
-
|
|
58
|
+
fullPath = path ? "".concat(baseUrl, "/").concat(path) : baseUrl;
|
|
59
|
+
_b.label = 1;
|
|
58
60
|
case 1:
|
|
61
|
+
_b.trys.push([1, 3, , 6]);
|
|
62
|
+
return [4 /*yield*/, Promise.all([
|
|
63
|
+
this.page.waitForNavigation({
|
|
64
|
+
waitUntil: 'networkidle2',
|
|
65
|
+
timeout: Base.DEFAULT_PAGE_LOAD_TIMEOUT,
|
|
66
|
+
}),
|
|
67
|
+
this.page.goto(fullPath, {
|
|
68
|
+
waitUntil: waitUntil || 'networkidle2',
|
|
69
|
+
timeout: Base.DEFAULT_PAGE_LOAD_TIMEOUT,
|
|
70
|
+
}),
|
|
71
|
+
])];
|
|
72
|
+
case 2:
|
|
73
|
+
_b.sent();
|
|
74
|
+
return [3 /*break*/, 6];
|
|
75
|
+
case 3:
|
|
76
|
+
err_1 = _b.sent();
|
|
77
|
+
if (!err_1.message.includes('detached')) return [3 /*break*/, 5];
|
|
78
|
+
flex_dev_utils_1.logger.error('Page has been detached. adding a sleep to let other processes finish');
|
|
79
|
+
/*
|
|
80
|
+
* Just let it wait the rest of the timeout so the other contestants in the rest
|
|
81
|
+
* can finish first.
|
|
82
|
+
*/
|
|
83
|
+
return [4 /*yield*/, (0, timers_1.sleep)(5000)];
|
|
84
|
+
case 4:
|
|
85
|
+
/*
|
|
86
|
+
* Just let it wait the rest of the timeout so the other contestants in the rest
|
|
87
|
+
* can finish first.
|
|
88
|
+
*/
|
|
59
89
|
_b.sent();
|
|
60
|
-
|
|
90
|
+
_b.label = 5;
|
|
91
|
+
case 5: return [3 /*break*/, 6];
|
|
92
|
+
case 6: return [2 /*return*/];
|
|
61
93
|
}
|
|
62
94
|
});
|
|
63
95
|
});
|
|
@@ -76,7 +108,7 @@ var Base = /** @class */ (function () {
|
|
|
76
108
|
case 1:
|
|
77
109
|
text = _a.sent();
|
|
78
110
|
if (!text) {
|
|
79
|
-
throw new Error(elementName
|
|
111
|
+
throw new Error("".concat(elementName, " does not contain any text"));
|
|
80
112
|
}
|
|
81
113
|
return [2 /*return*/, text];
|
|
82
114
|
}
|
|
@@ -156,7 +188,7 @@ var Base = /** @class */ (function () {
|
|
|
156
188
|
_a.label = 4;
|
|
157
189
|
case 4:
|
|
158
190
|
if (!element) {
|
|
159
|
-
throw new Error("Element: "
|
|
191
|
+
throw new Error("Element: ".concat(elementName, " is not visible in the UI"));
|
|
160
192
|
}
|
|
161
193
|
return [2 /*return*/, element];
|
|
162
194
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/utils/pages/view/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/utils/pages/view/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
29
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
30
|
function step(op) {
|
|
31
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
35
|
switch (op[0]) {
|
|
@@ -65,14 +65,14 @@ var Plugins = /** @class */ (function (_super) {
|
|
|
65
65
|
* @param pluginText
|
|
66
66
|
*/
|
|
67
67
|
isVisible: function (pluginText) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
68
|
-
return [2 /*return*/, this.elementVisible(this._plugin(pluginText), "Plugin with text: "
|
|
68
|
+
return [2 /*return*/, this.elementVisible(this._plugin(pluginText), "Plugin with text: ".concat(pluginText))];
|
|
69
69
|
}); }); },
|
|
70
70
|
},
|
|
71
71
|
};
|
|
72
72
|
/**
|
|
73
73
|
* Creates selector for plugin based on its text
|
|
74
74
|
*/
|
|
75
|
-
_this._plugin = function (text) { return "//div[contains(text(), '"
|
|
75
|
+
_this._plugin = function (text) { return "//div[contains(text(), '".concat(text, "')]"); };
|
|
76
76
|
_this._baseUrl = baseUrl.includes('localhost') ? 'https://flex.twilio.com' : baseUrl;
|
|
77
77
|
return _this;
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/utils/pages/view/plugins.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAgD;AAGhD,+BAA8B;AAS9B;IAA6B,2BAAI;IAgB/B,iBAAY,IAAU,EAAE,OAAe;QAAvC,YACE,kBAAM,IAAI,CAAC,SAEZ;QAhBD,YAAM,GAAG;YACP,MAAM,EAAE;gBACN;;;mBAGG;gBACH,SAAS,EAAE,UAAO,UAAkB;oBAClC,sBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/utils/pages/view/plugins.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAgD;AAGhD,+BAA8B;AAS9B;IAA6B,2BAAI;IAgB/B,iBAAY,IAAU,EAAE,OAAe;QAAvC,YACE,kBAAM,IAAI,CAAC,SAEZ;QAhBD,YAAM,GAAG;YACP,MAAM,EAAE;gBACN;;;mBAGG;gBACH,SAAS,EAAE,UAAO,UAAkB;oBAClC,sBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,4BAAqB,UAAU,CAAE,CAAC,EAAA;yBAAA;aACnF;SACF,CAAC;QA0BF;;WAEG;QACK,aAAO,GAAG,UAAC,IAAY,IAAa,OAAA,kCAA2B,IAAI,QAAK,EAApC,CAAoC,CAAC;QAvB/E,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC;;IACtF,CAAC;IAED;;OAEG;IACG,sBAAI,GAAV;;;;;4BACE,qBAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAA;;wBAA7D,SAA6D,CAAC;wBAE9B,qBAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAAA;;wBAA9F,uBAAuB,GAAG,SAAoE;wBACzE,qBAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,EAAA;;wBAAtF,kBAAkB,GAAG,SAAiE;wBAE5F,IAAI;4BACF,sBAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAC;yBACvC;wBAAC,OAAO,CAAC,EAAE;4BACV,uBAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;4BAC5E,MAAM,CAAC,CAAC;yBACT;;;;;KACF;IAnCuB,mBAAW,GAAG,KAAK,CAAC;IAyC9C,cAAC;CAAA,AA1CD,CAA6B,WAAI,GA0ChC;AA1CY,0BAAO"}
|
|
@@ -16,10 +16,10 @@ export declare class TwilioConsole extends Base {
|
|
|
16
16
|
private static _createLocalhostUrl;
|
|
17
17
|
/**
|
|
18
18
|
* Logs user in through service-login
|
|
19
|
-
* @param cookies
|
|
20
|
-
* @param flexBaseUrl
|
|
21
19
|
* @param flexPath
|
|
22
20
|
* @param accountSid
|
|
21
|
+
* @param localhostPort
|
|
22
|
+
* @param firstLoad
|
|
23
23
|
*/
|
|
24
24
|
login(flexPath: string, accountSid: string, localhostPort: number, firstLoad?: boolean): Promise<void>;
|
|
25
25
|
}
|
|
@@ -29,7 +29,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
29
29
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
30
|
function step(op) {
|
|
31
31
|
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (_) try {
|
|
32
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
33
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
34
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
35
|
switch (op[0]) {
|
|
@@ -68,15 +68,15 @@ var TwilioConsole = /** @class */ (function (_super) {
|
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
70
70
|
* Logs user in through service-login
|
|
71
|
-
* @param cookies
|
|
72
|
-
* @param flexBaseUrl
|
|
73
71
|
* @param flexPath
|
|
74
72
|
* @param accountSid
|
|
73
|
+
* @param localhostPort
|
|
74
|
+
* @param firstLoad
|
|
75
75
|
*/
|
|
76
76
|
TwilioConsole.prototype.login = function (flexPath, accountSid, localhostPort, firstLoad) {
|
|
77
77
|
if (firstLoad === void 0) { firstLoad = true; }
|
|
78
78
|
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
-
var redirectUrl, path, csrfToken, loginURL;
|
|
79
|
+
var redirectUrl, path, csrfToken, twVisitorCookie, csrfResponse, setCookieHeader, match, data, e_1, loginURL, result;
|
|
80
80
|
return __generator(this, function (_a) {
|
|
81
81
|
switch (_a.label) {
|
|
82
82
|
case 0:
|
|
@@ -84,53 +84,104 @@ var TwilioConsole = /** @class */ (function (_super) {
|
|
|
84
84
|
redirectUrl = this._flexBaseUrl.includes('localhost')
|
|
85
85
|
? TwilioConsole._createLocalhostUrl(localhostPort)
|
|
86
86
|
: this._flexBaseUrl;
|
|
87
|
-
path = "console/flex/service-login/"
|
|
87
|
+
path = "console/flex/service-login/".concat(accountSid, "/?path=/").concat(flexPath, "&referer=").concat(redirectUrl);
|
|
88
88
|
return [4 /*yield*/, this.goto({ baseUrl: this._baseUrl, path: path })];
|
|
89
89
|
case 1:
|
|
90
90
|
_a.sent();
|
|
91
|
-
if (!firstLoad) return [3 /*break*/,
|
|
91
|
+
if (!firstLoad) return [3 /*break*/, 13];
|
|
92
92
|
return [4 /*yield*/, this.elementVisible(TwilioConsole._loginForm, "Twilio Console's Login form")];
|
|
93
93
|
case 2:
|
|
94
94
|
_a.sent();
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
})];
|
|
95
|
+
csrfToken = null;
|
|
96
|
+
twVisitorCookie = null;
|
|
97
|
+
_a.label = 3;
|
|
99
98
|
case 3:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
99
|
+
_a.trys.push([3, 6, , 7]);
|
|
100
|
+
return [4 /*yield*/, fetch("".concat(this._baseUrl, "/api/csrf"), { method: 'GET' })];
|
|
101
|
+
case 4:
|
|
102
|
+
csrfResponse = _a.sent();
|
|
103
|
+
setCookieHeader = csrfResponse.headers.get('set-cookie');
|
|
104
|
+
if (setCookieHeader) {
|
|
105
|
+
match = setCookieHeader.match(/tw-visitor=([^;]+);/);
|
|
106
|
+
twVisitorCookie = match ? match[1] : null;
|
|
107
|
+
}
|
|
108
|
+
return [4 /*yield*/, csrfResponse.json()];
|
|
109
|
+
case 5:
|
|
110
|
+
data = _a.sent();
|
|
111
|
+
csrfToken = data.csrf || null;
|
|
112
|
+
return [3 /*break*/, 7];
|
|
113
|
+
case 6:
|
|
114
|
+
e_1 = _a.sent();
|
|
115
|
+
flex_dev_utils_1.logger.info('CSRF fetch failed:', e_1);
|
|
116
|
+
return [3 /*break*/, 7];
|
|
117
|
+
case 7:
|
|
118
|
+
if (!(csrfToken && twVisitorCookie)) return [3 /*break*/, 12];
|
|
119
|
+
loginURL = "".concat(this._baseUrl, "/userauth/submitLoginPassword");
|
|
120
|
+
return [4 /*yield*/, this.page.setCookie({
|
|
121
|
+
name: 'tw-visitor',
|
|
122
|
+
value: twVisitorCookie,
|
|
123
|
+
domain: new URL(this._baseUrl).hostname,
|
|
124
|
+
})];
|
|
125
|
+
case 8:
|
|
126
|
+
_a.sent();
|
|
127
|
+
return [4 /*yield*/, this.page.evaluate(function (data) {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
129
|
+
return __generator(this, function (_a) {
|
|
130
|
+
return [2 /*return*/, fetch(data.url, {
|
|
131
|
+
headers: {
|
|
132
|
+
'x-twilio-csrf': data.csrfToken || '',
|
|
133
|
+
'Content-Type': 'application/json',
|
|
134
|
+
},
|
|
135
|
+
body: JSON.stringify({
|
|
136
|
+
email: data.email,
|
|
137
|
+
password: data.password,
|
|
138
|
+
}),
|
|
139
|
+
credentials: 'include',
|
|
140
|
+
method: 'POST',
|
|
141
|
+
})
|
|
142
|
+
.then(function (response) {
|
|
143
|
+
return {
|
|
144
|
+
status: response.status,
|
|
145
|
+
headers: (function () {
|
|
146
|
+
var headersObj = {};
|
|
147
|
+
response.headers.forEach(function (value, key) {
|
|
148
|
+
headersObj[key] = value;
|
|
149
|
+
});
|
|
150
|
+
return headersObj;
|
|
151
|
+
})(),
|
|
152
|
+
};
|
|
153
|
+
})
|
|
154
|
+
.catch(function (err) {
|
|
155
|
+
return {
|
|
156
|
+
error: err.message || 'Unknown error during fetch',
|
|
157
|
+
};
|
|
158
|
+
})];
|
|
159
|
+
});
|
|
116
160
|
});
|
|
117
161
|
}, {
|
|
118
162
|
url: loginURL,
|
|
119
163
|
email: core_1.testParams.secrets.console.email,
|
|
120
164
|
password: core_1.testParams.secrets.console.password,
|
|
121
165
|
csrfToken: csrfToken,
|
|
166
|
+
twVisitorCookie: twVisitorCookie,
|
|
122
167
|
})];
|
|
123
|
-
case
|
|
168
|
+
case 9:
|
|
169
|
+
result = _a.sent();
|
|
170
|
+
// Wait for cookies to be set after successful login
|
|
171
|
+
return [4 /*yield*/, (0, timers_1.sleep)(2000)];
|
|
172
|
+
case 10:
|
|
173
|
+
// Wait for cookies to be set after successful login
|
|
124
174
|
_a.sent();
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
case 5:
|
|
175
|
+
flex_dev_utils_1.logger.info('Navigating to Flex admin directly after successful login');
|
|
176
|
+
return [4 /*yield*/, this.goto({ baseUrl: flexPath === 'admin' ? this._flexBaseUrl : this._baseUrl, path: flexPath === 'admin' ? flexPath : path })];
|
|
177
|
+
case 11:
|
|
129
178
|
_a.sent();
|
|
130
|
-
return [3 /*break*/,
|
|
131
|
-
case
|
|
132
|
-
|
|
133
|
-
|
|
179
|
+
return [3 /*break*/, 13];
|
|
180
|
+
case 12:
|
|
181
|
+
flex_dev_utils_1.logger.error('Unable to fetch CSRF token or tw-visitor cookie for Twilio Console login');
|
|
182
|
+
throw new Error('Unable to fetch CSRF token or tw-visitor cookie to login to Twilio Console');
|
|
183
|
+
case 13: return [4 /*yield*/, (0, timers_1.sleep)(60000)];
|
|
184
|
+
case 14:
|
|
134
185
|
_a.sent();
|
|
135
186
|
return [2 /*return*/];
|
|
136
187
|
}
|
|
@@ -142,7 +193,7 @@ var TwilioConsole = /** @class */ (function (_super) {
|
|
|
142
193
|
* Creates a localhost url
|
|
143
194
|
* @param port
|
|
144
195
|
*/
|
|
145
|
-
TwilioConsole._createLocalhostUrl = function (port) { return "http://localhost:"
|
|
196
|
+
TwilioConsole._createLocalhostUrl = function (port) { return "http://localhost:".concat(port, "&localPort=").concat(port); };
|
|
146
197
|
return TwilioConsole;
|
|
147
198
|
}(base_1.Base));
|
|
148
199
|
exports.TwilioConsole = TwilioConsole;
|