@twilio/flex-plugin-e2e-tests 6.4.1 → 6.4.2-alpha.202405240851
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/tests/step006.js +4 -1
- package/dist/tests/step006.js.map +1 -1
- package/dist/tests/step007.d.ts +3 -0
- package/dist/tests/step007.js +33 -39
- package/dist/tests/step007.js.map +1 -1
- package/dist/tests/step008.js +130 -25
- package/dist/tests/step008.js.map +1 -1
- package/dist/tests/step009.js +47 -59
- package/dist/tests/step009.js.map +1 -1
- package/dist/tests/step010.js +36 -88
- package/dist/tests/step010.js.map +1 -1
- package/dist/tests/step011.js +55 -50
- package/dist/tests/step011.js.map +1 -1
- package/dist/tests/step012.js +38 -52
- package/dist/tests/step012.js.map +1 -1
- package/dist/tests/step013.d.ts +3 -0
- package/dist/tests/step013.js +175 -0
- package/dist/tests/step013.js.map +1 -0
- package/dist/utils/pages/view/twilio-console.d.ts +1 -0
- package/dist/utils/pages/view/twilio-console.js +14 -10
- package/dist/utils/pages/view/twilio-console.js.map +1 -1
- package/package.json +5 -5
package/dist/tests/step010.js
CHANGED
|
@@ -35,115 +35,66 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
};
|
|
54
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
55
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
56
|
-
to[j] = from[i];
|
|
57
|
-
return to;
|
|
58
|
-
};
|
|
59
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
-
/* eslint-disable import/no-unused-modules */
|
|
61
|
-
var replace_in_file_1 = require("replace-in-file");
|
|
62
|
-
var core_1 = require("../core");
|
|
63
39
|
var utils_1 = require("../utils");
|
|
64
|
-
|
|
40
|
+
var PLUGIN_RELEASED_TIMEOUT = 30000;
|
|
41
|
+
var PLUGIN_RELEASED_POLL_INTERVAL = 5000;
|
|
42
|
+
// Plugin visible on the Hosted Flex
|
|
65
43
|
var testSuite = function (_a) {
|
|
66
44
|
var scenario = _a.scenario, config = _a.config, secrets = _a.secrets, environment = _a.environment;
|
|
67
45
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
68
|
-
var
|
|
46
|
+
var plugin, release, plugins, releasedPlugin, accountSid, e_1;
|
|
69
47
|
return __generator(this, function (_b) {
|
|
70
48
|
switch (_b.label) {
|
|
71
49
|
case 0:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
utils_1.assertion.not.isNull(plugin2);
|
|
77
|
-
utils_1.assertion.not.isNull(plugin3);
|
|
78
|
-
if (!plugin1.newlineValue) {
|
|
79
|
-
throw new Error('scenario.plugin.newlineValue does not have a valid value');
|
|
80
|
-
}
|
|
81
|
-
flags = [];
|
|
82
|
-
ext = scenario.isTS ? 'tsx' : 'jsx';
|
|
83
|
-
startPlugin = function (url) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
84
|
-
return [2 /*return*/, utils_1.pluginHelper.waitForPluginToStart(url, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
|
|
85
|
-
}); }); };
|
|
86
|
-
if (scenario.isTS) {
|
|
87
|
-
flags.push('--typescript');
|
|
50
|
+
plugin = scenario.plugins[0];
|
|
51
|
+
utils_1.assertion.not.isNull(plugin);
|
|
52
|
+
if (!plugin.newlineValue) {
|
|
53
|
+
throw new Error("scenario.plugin.newlineValue does not have a valid value");
|
|
88
54
|
}
|
|
89
|
-
|
|
90
|
-
return __generator(this, function (_a) {
|
|
91
|
-
switch (_a.label) {
|
|
92
|
-
case 0: return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:create', plugin.name], __read(flags)))];
|
|
93
|
-
case 1:
|
|
94
|
-
_a.sent();
|
|
95
|
-
utils_1.pluginHelper.changeFlexUIVersionIfRequired(scenario, plugin);
|
|
96
|
-
return [4 /*yield*/, utils_1.spawn('npm', ['i'], { cwd: plugin.dir })];
|
|
97
|
-
case 2:
|
|
98
|
-
_a.sent();
|
|
99
|
-
return [4 /*yield*/, replace_in_file_1.replaceInFile({
|
|
100
|
-
files: utils_1.joinPath(plugin.dir, 'src', 'components', 'CustomTaskList', "CustomTaskList." + ext),
|
|
101
|
-
from: /This is a dismissible demo component.*/,
|
|
102
|
-
to: plugin.componentText,
|
|
103
|
-
})];
|
|
104
|
-
case 3:
|
|
105
|
-
_a.sent();
|
|
106
|
-
return [2 /*return*/];
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}); };
|
|
110
|
-
// Set up two new plugins
|
|
111
|
-
return [4 /*yield*/, Promise.all([setup(plugin2), setup(plugin3)])];
|
|
55
|
+
return [4 /*yield*/, utils_1.api.getActiveRelease()];
|
|
112
56
|
case 1:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
57
|
+
release = _b.sent();
|
|
58
|
+
if (!release) {
|
|
59
|
+
throw new Error('Account does not have an active release');
|
|
60
|
+
}
|
|
61
|
+
return [4 /*yield*/, utils_1.api.getActivePlugins(release.configuration_sid)];
|
|
116
62
|
case 2:
|
|
117
|
-
|
|
118
|
-
|
|
63
|
+
plugins = _b.sent();
|
|
64
|
+
releasedPlugin = plugins.plugins.find(function (plgin) { return plgin.unique_name === plugin.name; });
|
|
65
|
+
if (!releasedPlugin) {
|
|
66
|
+
throw new Error("Did not find plugin with name: " + plugin.name + " in released plugins");
|
|
67
|
+
}
|
|
68
|
+
return [4 /*yield*/, utils_1.Browser.create({ flex: config.hostedFlexBaseUrl, twilioConsole: config.consoleBaseUrl })];
|
|
119
69
|
case 3:
|
|
120
70
|
_b.sent();
|
|
121
71
|
_b.label = 4;
|
|
122
72
|
case 4:
|
|
123
|
-
_b.trys.push([4, 11, 13,
|
|
124
|
-
//
|
|
125
|
-
return [4 /*yield*/, utils_1.Browser.
|
|
73
|
+
_b.trys.push([4, 11, 13, 15]);
|
|
74
|
+
// Log into Flex
|
|
75
|
+
return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort)];
|
|
126
76
|
case 5:
|
|
127
|
-
//
|
|
77
|
+
// Log into Flex
|
|
128
78
|
_b.sent();
|
|
129
|
-
return [4 /*yield*/, utils_1.
|
|
79
|
+
return [4 /*yield*/, utils_1.assertion.app.view.adminDashboard.isVisible()];
|
|
130
80
|
case 6:
|
|
131
81
|
_b.sent();
|
|
132
|
-
|
|
133
|
-
return [4 /*yield*/, utils_1.assertion.app.view.agentDesktop.isVisible()];
|
|
82
|
+
return [4 /*yield*/, utils_1.Browser.app.getFlexAccountSid()];
|
|
134
83
|
case 7:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
84
|
+
accountSid = _b.sent();
|
|
85
|
+
utils_1.assertion.equal(accountSid, secrets.api.accountSid);
|
|
86
|
+
// Make sure that /plugins contain the plugin
|
|
87
|
+
return [4 /*yield*/, utils_1.pluginHelper.waitForPluginToRelease(releasedPlugin, PLUGIN_RELEASED_TIMEOUT, PLUGIN_RELEASED_POLL_INTERVAL)];
|
|
138
88
|
case 8:
|
|
89
|
+
// Make sure that /plugins contain the plugin
|
|
139
90
|
_b.sent();
|
|
140
|
-
return [4 /*yield*/, utils_1.
|
|
91
|
+
return [4 /*yield*/, utils_1.Browser.app.agentDesktop.open()];
|
|
141
92
|
case 9:
|
|
142
93
|
_b.sent();
|
|
143
|
-
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(
|
|
94
|
+
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin.newlineValue)];
|
|
144
95
|
case 10:
|
|
145
96
|
_b.sent();
|
|
146
|
-
return [3 /*break*/,
|
|
97
|
+
return [3 /*break*/, 15];
|
|
147
98
|
case 11:
|
|
148
99
|
e_1 = _b.sent();
|
|
149
100
|
return [4 /*yield*/, utils_1.Browser.app.takeScreenshot(environment.cwd)];
|
|
@@ -152,16 +103,13 @@ var testSuite = function (_a) {
|
|
|
152
103
|
throw e_1;
|
|
153
104
|
case 13: return [4 /*yield*/, utils_1.Browser.kill()];
|
|
154
105
|
case 14:
|
|
155
|
-
_b.sent();
|
|
156
|
-
return [4 /*yield*/, utils_1.killChildProcess(twilioCliResult.child, environment.operatingSystem)];
|
|
157
|
-
case 15:
|
|
158
106
|
_b.sent();
|
|
159
107
|
return [7 /*endfinally*/];
|
|
160
|
-
case
|
|
108
|
+
case 15: return [2 /*return*/];
|
|
161
109
|
}
|
|
162
110
|
});
|
|
163
111
|
});
|
|
164
112
|
};
|
|
165
|
-
testSuite.description = '
|
|
113
|
+
testSuite.description = 'Released Plugin visible on the Hosted Flex';
|
|
166
114
|
exports.default = testSuite;
|
|
167
115
|
//# sourceMappingURL=step010.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step010.js","sourceRoot":"","sources":["../../src/tests/step010.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step010.js","sourceRoot":"","sources":["../../src/tests/step010.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kCAAiE;AAEjE,IAAM,uBAAuB,GAAG,KAAK,CAAC;AACtC,IAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C,oCAAoC;AACpC,IAAM,SAAS,GAAc,UAAO,EAAsD;QAApD,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,WAAW,iBAAA;;;;;;oBACpE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACnC,iBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAE7B,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;wBACxB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;qBAC7E;oBAGe,qBAAM,WAAG,CAAC,gBAAgB,EAAE,EAAA;;oBAAtC,OAAO,GAAG,SAA4B;oBAE5C,IAAI,CAAC,OAAO,EAAE;wBACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;qBAC5D;oBAEe,qBAAM,WAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAA;;oBAA/D,OAAO,GAAG,SAAqD;oBAC/D,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,EAAjC,CAAiC,CAAC,CAAC;oBAC1F,IAAI,CAAC,cAAc,EAAE;wBACnB,MAAM,IAAI,KAAK,CAAC,oCAAkC,MAAM,CAAC,IAAI,yBAAsB,CAAC,CAAC;qBACtF;oBAED,qBAAM,eAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,EAAA;;oBAA9F,SAA8F,CAAC;;;;oBAE7F,gBAAgB;oBAChB,qBAAM,eAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,EAAA;;oBAD5F,gBAAgB;oBAChB,SAA4F,CAAC;oBAE7F,qBAAM,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAA;;oBAAnD,SAAmD,CAAC;oBAGjC,qBAAM,eAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAA;;oBAAlD,UAAU,GAAG,SAAqC;oBACxD,iBAAS,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAEpD,6CAA6C;oBAC7C,qBAAM,oBAAY,CAAC,sBAAsB,CAAC,cAAc,EAAE,uBAAuB,EAAE,6BAA6B,CAAC,EAAA;;oBADjH,6CAA6C;oBAC7C,SAAiH,CAAC;oBAClH,qBAAM,eAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAA;;oBAArC,SAAqC,CAAC;oBAEtC,qBAAM,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAA;;oBAAtE,SAAsE,CAAC;;;;oBAEvE,qBAAM,eAAO,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,EAAA;;oBAAjD,SAAiD,CAAC;oBAClD,MAAM,GAAC,CAAC;yBAER,qBAAM,eAAO,CAAC,IAAI,EAAE,EAAA;;oBAApB,SAAoB,CAAC;;;;;;CAExB,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,4CAA4C,CAAC;AAErE,kBAAe,SAAS,CAAC"}
|
package/dist/tests/step011.js
CHANGED
|
@@ -56,19 +56,16 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
|
56
56
|
to[j] = from[i];
|
|
57
57
|
return to;
|
|
58
58
|
};
|
|
59
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
60
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
61
|
-
};
|
|
62
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
63
60
|
/* eslint-disable import/no-unused-modules */
|
|
64
|
-
var
|
|
61
|
+
var replace_in_file_1 = require("replace-in-file");
|
|
65
62
|
var core_1 = require("../core");
|
|
66
63
|
var utils_1 = require("../utils");
|
|
67
|
-
// Starting multiple plugins using
|
|
64
|
+
// Starting multiple plugins using 2 local and one remote works
|
|
68
65
|
var testSuite = function (_a) {
|
|
69
66
|
var scenario = _a.scenario, config = _a.config, secrets = _a.secrets, environment = _a.environment;
|
|
70
67
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
71
|
-
var plugin1, plugin2, plugin3,
|
|
68
|
+
var plugin1, plugin2, plugin3, flags, ext, startPlugin, setup, twilioCliResult, e_1;
|
|
72
69
|
return __generator(this, function (_b) {
|
|
73
70
|
switch (_b.label) {
|
|
74
71
|
case 0:
|
|
@@ -81,82 +78,90 @@ var testSuite = function (_a) {
|
|
|
81
78
|
if (!plugin1.newlineValue) {
|
|
82
79
|
throw new Error('scenario.plugin.newlineValue does not have a valid value');
|
|
83
80
|
}
|
|
84
|
-
|
|
81
|
+
flags = [];
|
|
82
|
+
ext = scenario.isTS ? 'tsx' : 'jsx';
|
|
83
|
+
startPlugin = function (url) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
84
|
+
return [2 /*return*/, utils_1.pluginHelper.waitForPluginToStart(url, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
|
|
85
|
+
}); }); };
|
|
86
|
+
if (scenario.isTS) {
|
|
87
|
+
flags.push('--typescript');
|
|
88
|
+
}
|
|
89
|
+
setup = function (plugin) { return __awaiter(void 0, void 0, void 0, function () {
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0: return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:create', plugin.name], __read(flags)))];
|
|
93
|
+
case 1:
|
|
94
|
+
_a.sent();
|
|
95
|
+
utils_1.pluginHelper.changeFlexUIVersionIfRequired(scenario, plugin);
|
|
96
|
+
return [4 /*yield*/, utils_1.spawn('npm', ['i'], { cwd: plugin.dir })];
|
|
97
|
+
case 2:
|
|
98
|
+
_a.sent();
|
|
99
|
+
return [4 /*yield*/, replace_in_file_1.replaceInFile({
|
|
100
|
+
files: utils_1.joinPath(plugin.dir, 'src', 'components', 'CustomTaskList', "CustomTaskList." + ext),
|
|
101
|
+
from: /This is a dismissible demo component.*/,
|
|
102
|
+
to: plugin.componentText,
|
|
103
|
+
})];
|
|
104
|
+
case 3:
|
|
105
|
+
_a.sent();
|
|
106
|
+
return [2 /*return*/];
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}); };
|
|
110
|
+
// Set up two new plugins
|
|
111
|
+
return [4 /*yield*/, Promise.all([setup(plugin2), setup(plugin3)])];
|
|
85
112
|
case 1:
|
|
86
|
-
|
|
87
|
-
oldVersion = (resource === null || resource === void 0 ? void 0 : resource.version) || '0.0.0';
|
|
88
|
-
plugin2.changelog = "e2e test " + Date.now();
|
|
89
|
-
plugin2.version = semver_1.default.inc(oldVersion, 'patch');
|
|
90
|
-
return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:deploy', '--changelog', "\"" + plugin2.changelog + "\"", '--patch', '-l', 'debug'], __read(config.regionFlag)), {
|
|
91
|
-
cwd: plugin2.dir,
|
|
92
|
-
})];
|
|
93
|
-
case 2:
|
|
113
|
+
// Set up two new plugins
|
|
94
114
|
_b.sent();
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
plugin2.name + "@" + plugin2.version,
|
|
100
|
-
'-l',
|
|
101
|
-
'debug'
|
|
102
|
-
], __read(config.regionFlag)))];
|
|
115
|
+
return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start', '--name', plugin1.name + "@" + plugin1.version, '--name', plugin2.name], { detached: true, cwd: plugin3.dir })];
|
|
116
|
+
case 2:
|
|
117
|
+
twilioCliResult = _b.sent();
|
|
118
|
+
return [4 /*yield*/, Promise.all([startPlugin(plugin2.localhostUrl), startPlugin(plugin3.localhostUrl)])];
|
|
103
119
|
case 3:
|
|
104
|
-
// Release plugin2
|
|
105
120
|
_b.sent();
|
|
106
|
-
|
|
107
|
-
detached: true,
|
|
108
|
-
cwd: plugin3.dir,
|
|
109
|
-
})];
|
|
121
|
+
_b.label = 4;
|
|
110
122
|
case 4:
|
|
111
|
-
|
|
112
|
-
return [4 /*yield*/, utils_1.pluginHelper.waitForPluginToStart(plugin3.localhostUrl, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
|
|
113
|
-
case 5:
|
|
114
|
-
_b.sent();
|
|
115
|
-
_b.label = 6;
|
|
116
|
-
case 6:
|
|
117
|
-
_b.trys.push([6, 13, 15, 18]);
|
|
123
|
+
_b.trys.push([4, 11, 13, 16]);
|
|
118
124
|
// Load local plugin
|
|
119
125
|
return [4 /*yield*/, utils_1.Browser.create({ flex: plugin3.localhostUrl, twilioConsole: config.consoleBaseUrl })];
|
|
120
|
-
case
|
|
126
|
+
case 5:
|
|
121
127
|
// Load local plugin
|
|
122
128
|
_b.sent();
|
|
123
129
|
return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort)];
|
|
124
|
-
case
|
|
130
|
+
case 6:
|
|
125
131
|
_b.sent();
|
|
126
132
|
// Check if local plugin loaded okay
|
|
127
133
|
return [4 /*yield*/, utils_1.assertion.app.view.agentDesktop.isVisible()];
|
|
128
|
-
case
|
|
134
|
+
case 7:
|
|
129
135
|
// Check if local plugin loaded okay
|
|
130
136
|
_b.sent();
|
|
131
137
|
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin1.newlineValue)];
|
|
132
|
-
case
|
|
138
|
+
case 8:
|
|
133
139
|
_b.sent();
|
|
134
140
|
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin2.componentText)];
|
|
135
|
-
case
|
|
141
|
+
case 9:
|
|
136
142
|
_b.sent();
|
|
137
143
|
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin3.componentText)];
|
|
138
|
-
case
|
|
144
|
+
case 10:
|
|
139
145
|
_b.sent();
|
|
140
|
-
return [3 /*break*/,
|
|
141
|
-
case
|
|
146
|
+
return [3 /*break*/, 16];
|
|
147
|
+
case 11:
|
|
142
148
|
e_1 = _b.sent();
|
|
143
149
|
return [4 /*yield*/, utils_1.Browser.app.takeScreenshot(environment.cwd)];
|
|
144
|
-
case
|
|
150
|
+
case 12:
|
|
145
151
|
_b.sent();
|
|
146
152
|
throw e_1;
|
|
147
|
-
case
|
|
148
|
-
case
|
|
153
|
+
case 13: return [4 /*yield*/, utils_1.Browser.kill()];
|
|
154
|
+
case 14:
|
|
149
155
|
_b.sent();
|
|
150
156
|
return [4 /*yield*/, utils_1.killChildProcess(twilioCliResult.child, environment.operatingSystem)];
|
|
151
|
-
case
|
|
157
|
+
case 15:
|
|
152
158
|
_b.sent();
|
|
153
159
|
return [7 /*endfinally*/];
|
|
154
|
-
case
|
|
160
|
+
case 16: return [2 /*return*/];
|
|
155
161
|
}
|
|
156
162
|
});
|
|
157
163
|
});
|
|
158
164
|
};
|
|
159
|
-
testSuite.description =
|
|
160
|
-
'Running {{twilio flex:plugins:start --include-remote}} with 1 local plugin and all remote plugins';
|
|
165
|
+
testSuite.description = 'Running {{twilio flex:plugins:start}} with multiple plugins: 2 local and 1 remote';
|
|
161
166
|
exports.default = testSuite;
|
|
162
167
|
//# sourceMappingURL=step011.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step011.js","sourceRoot":"","sources":["../../src/tests/step011.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step011.js","sourceRoot":"","sources":["../../src/tests/step011.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/step012.js
CHANGED
|
@@ -61,116 +61,102 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
61
61
|
};
|
|
62
62
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
63
63
|
/* eslint-disable import/no-unused-modules */
|
|
64
|
-
var replace_in_file_1 = require("replace-in-file");
|
|
65
64
|
var semver_1 = __importDefault(require("semver"));
|
|
66
65
|
var core_1 = require("../core");
|
|
67
66
|
var utils_1 = require("../utils");
|
|
68
|
-
//
|
|
67
|
+
// Starting multiple plugins using --include-remote works
|
|
69
68
|
var testSuite = function (_a) {
|
|
70
69
|
var scenario = _a.scenario, config = _a.config, secrets = _a.secrets, environment = _a.environment;
|
|
71
70
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
72
|
-
var
|
|
71
|
+
var plugin1, plugin2, plugin3, resource, oldVersion, twilioCliResult, e_1;
|
|
73
72
|
return __generator(this, function (_b) {
|
|
74
73
|
switch (_b.label) {
|
|
75
74
|
case 0:
|
|
76
|
-
ext = scenario.isTS ? 'tsx' : 'jsx';
|
|
77
|
-
tmpComponentText = 'This is the new text for the next version!';
|
|
78
|
-
startPlugin = function (url) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
79
|
-
return [2 /*return*/, utils_1.pluginHelper.waitForPluginToStart(url, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
|
|
80
|
-
}); }); };
|
|
81
75
|
plugin1 = scenario.plugins[0];
|
|
82
76
|
plugin2 = scenario.plugins[1];
|
|
83
77
|
plugin3 = scenario.plugins[2];
|
|
84
78
|
utils_1.assertion.not.isNull(plugin1);
|
|
85
79
|
utils_1.assertion.not.isNull(plugin2);
|
|
86
80
|
utils_1.assertion.not.isNull(plugin3);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
from: plugin1.componentText,
|
|
92
|
-
to: tmpComponentText,
|
|
93
|
-
})];
|
|
81
|
+
if (!plugin1.newlineValue) {
|
|
82
|
+
throw new Error('scenario.plugin.newlineValue does not have a valid value');
|
|
83
|
+
}
|
|
84
|
+
return [4 /*yield*/, utils_1.api.getLatestPluginVersion(plugin2.name)];
|
|
94
85
|
case 1:
|
|
95
|
-
// Edit remote plugin to have different text
|
|
96
|
-
_b.sent();
|
|
97
|
-
return [4 /*yield*/, utils_1.api.getLatestPluginVersion(plugin1.name)];
|
|
98
|
-
case 2:
|
|
99
86
|
resource = _b.sent();
|
|
100
87
|
oldVersion = (resource === null || resource === void 0 ? void 0 : resource.version) || '0.0.0';
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
88
|
+
plugin2.changelog = "e2e test " + Date.now();
|
|
89
|
+
plugin2.version = semver_1.default.inc(oldVersion, 'patch');
|
|
90
|
+
return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:deploy', '--changelog', "\"" + plugin2.changelog + "\"", '--patch', '-l', 'debug'], __read(config.regionFlag)), {
|
|
91
|
+
cwd: plugin2.dir,
|
|
104
92
|
})];
|
|
105
|
-
case
|
|
93
|
+
case 2:
|
|
106
94
|
_b.sent();
|
|
107
|
-
// Release
|
|
95
|
+
// Release plugin2
|
|
108
96
|
return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray([
|
|
109
97
|
'flex:plugins:release',
|
|
110
98
|
'--plugin',
|
|
99
|
+
plugin2.name + "@" + plugin2.version,
|
|
111
100
|
'-l',
|
|
112
|
-
'debug'
|
|
113
|
-
plugin1.name + "@" + plugin1.version
|
|
101
|
+
'debug'
|
|
114
102
|
], __read(config.regionFlag)))];
|
|
115
|
-
case
|
|
116
|
-
// Release
|
|
103
|
+
case 3:
|
|
104
|
+
// Release plugin2
|
|
117
105
|
_b.sent();
|
|
118
|
-
|
|
119
|
-
return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:start', '-l', 'debug'], __read(flags)), {
|
|
106
|
+
return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start --include-remote'], {
|
|
120
107
|
detached: true,
|
|
121
108
|
cwd: plugin3.dir,
|
|
122
109
|
})];
|
|
123
|
-
case
|
|
110
|
+
case 4:
|
|
124
111
|
twilioCliResult = _b.sent();
|
|
125
|
-
return [4 /*yield*/,
|
|
126
|
-
case
|
|
112
|
+
return [4 /*yield*/, utils_1.pluginHelper.waitForPluginToStart(plugin3.localhostUrl, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
|
|
113
|
+
case 5:
|
|
127
114
|
_b.sent();
|
|
128
|
-
_b.label =
|
|
129
|
-
case
|
|
130
|
-
_b.trys.push([
|
|
115
|
+
_b.label = 6;
|
|
116
|
+
case 6:
|
|
117
|
+
_b.trys.push([6, 13, 15, 18]);
|
|
131
118
|
// Load local plugin
|
|
132
119
|
return [4 /*yield*/, utils_1.Browser.create({ flex: plugin3.localhostUrl, twilioConsole: config.consoleBaseUrl })];
|
|
133
|
-
case
|
|
120
|
+
case 7:
|
|
134
121
|
// Load local plugin
|
|
135
122
|
_b.sent();
|
|
136
123
|
return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort)];
|
|
137
|
-
case
|
|
124
|
+
case 8:
|
|
138
125
|
_b.sent();
|
|
139
126
|
// Check if local plugin loaded okay
|
|
140
127
|
return [4 /*yield*/, utils_1.assertion.app.view.agentDesktop.isVisible()];
|
|
141
|
-
case
|
|
128
|
+
case 9:
|
|
142
129
|
// Check if local plugin loaded okay
|
|
143
130
|
_b.sent();
|
|
144
|
-
// @ts-ignore
|
|
145
131
|
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin1.newlineValue)];
|
|
146
|
-
case
|
|
147
|
-
// @ts-ignore
|
|
132
|
+
case 10:
|
|
148
133
|
_b.sent();
|
|
149
134
|
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin2.componentText)];
|
|
150
|
-
case
|
|
135
|
+
case 11:
|
|
151
136
|
_b.sent();
|
|
152
137
|
return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin3.componentText)];
|
|
153
|
-
case
|
|
138
|
+
case 12:
|
|
154
139
|
_b.sent();
|
|
155
|
-
return [3 /*break*/,
|
|
156
|
-
case
|
|
140
|
+
return [3 /*break*/, 18];
|
|
141
|
+
case 13:
|
|
157
142
|
e_1 = _b.sent();
|
|
158
143
|
return [4 /*yield*/, utils_1.Browser.app.takeScreenshot(environment.cwd)];
|
|
159
|
-
case
|
|
144
|
+
case 14:
|
|
160
145
|
_b.sent();
|
|
161
146
|
throw e_1;
|
|
162
|
-
case
|
|
163
|
-
case
|
|
147
|
+
case 15: return [4 /*yield*/, utils_1.Browser.kill()];
|
|
148
|
+
case 16:
|
|
164
149
|
_b.sent();
|
|
165
150
|
return [4 /*yield*/, utils_1.killChildProcess(twilioCliResult.child, environment.operatingSystem)];
|
|
166
|
-
case
|
|
151
|
+
case 17:
|
|
167
152
|
_b.sent();
|
|
168
153
|
return [7 /*endfinally*/];
|
|
169
|
-
case
|
|
154
|
+
case 18: return [2 /*return*/];
|
|
170
155
|
}
|
|
171
156
|
});
|
|
172
157
|
});
|
|
173
158
|
};
|
|
174
|
-
testSuite.description =
|
|
159
|
+
testSuite.description =
|
|
160
|
+
'Running {{twilio flex:plugins:start --include-remote}} with 1 local plugin and all remote plugins';
|
|
175
161
|
exports.default = testSuite;
|
|
176
162
|
//# sourceMappingURL=step012.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step012.js","sourceRoot":"","sources":["../../src/tests/step012.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"step012.js","sourceRoot":"","sources":["../../src/tests/step012.ts"],"names":[],"mappings":"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"}
|