@twilio/flex-plugin-e2e-tests 6.3.3-alpha.202403191805 → 6.3.3-alpha.202404011044

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.
@@ -35,81 +35,163 @@ 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
+ };
38
59
  Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.setupFlexBeforeLocalhost = void 0;
61
+ /* eslint-disable import/no-unused-modules */
62
+ var replace_in_file_1 = require("replace-in-file");
63
+ var core_1 = require("../core");
39
64
  var utils_1 = require("../utils");
40
- var PLUGIN_RELEASED_TIMEOUT = 30000;
41
- var PLUGIN_RELEASED_POLL_INTERVAL = 5000;
42
- // Plugin visible on the Hosted Flex
65
+ /**
66
+ * Log into Flex to set the required flex.twilio.com cookies
67
+ * @param config Contains the urls requires to load in the browser
68
+ * @param secrets Contains account info
69
+ */
70
+ var setupFlexBeforeLocalhost = function (config, secrets) { return __awaiter(void 0, void 0, void 0, function () {
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0: return [4 /*yield*/, utils_1.Browser.create({ flex: config.hostedFlexBaseUrl, twilioConsole: config.consoleBaseUrl })];
74
+ case 1:
75
+ _a.sent();
76
+ return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort)];
77
+ case 2:
78
+ _a.sent();
79
+ // Check if Flex loaded okay
80
+ return [4 /*yield*/, utils_1.assertion.app.view.adminDashboard.isVisible()];
81
+ case 3:
82
+ // Check if Flex loaded okay
83
+ _a.sent();
84
+ return [2 /*return*/];
85
+ }
86
+ });
87
+ }); };
88
+ exports.setupFlexBeforeLocalhost = setupFlexBeforeLocalhost;
89
+ // Starting multiple plugins using 2 local and one remote works
43
90
  var testSuite = function (_a) {
44
91
  var scenario = _a.scenario, config = _a.config, secrets = _a.secrets, environment = _a.environment;
45
92
  return __awaiter(void 0, void 0, void 0, function () {
46
- var plugin, release, plugins, releasedPlugin, accountSid, e_1;
93
+ var plugin1, plugin2, plugin3, flags, ext, startPlugin, setup, twilioCliResult, e_1;
47
94
  return __generator(this, function (_b) {
48
95
  switch (_b.label) {
49
96
  case 0:
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");
97
+ plugin1 = scenario.plugins[0];
98
+ plugin2 = scenario.plugins[1];
99
+ plugin3 = scenario.plugins[2];
100
+ utils_1.assertion.not.isNull(plugin1);
101
+ utils_1.assertion.not.isNull(plugin2);
102
+ utils_1.assertion.not.isNull(plugin3);
103
+ if (!plugin1.newlineValue) {
104
+ throw new Error('scenario.plugin.newlineValue does not have a valid value');
54
105
  }
55
- return [4 /*yield*/, utils_1.api.getActiveRelease()];
56
- case 1:
57
- release = _b.sent();
58
- if (!release) {
59
- throw new Error('Account does not have an active release');
106
+ flags = [];
107
+ ext = scenario.isTS ? 'tsx' : 'jsx';
108
+ startPlugin = function (url) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
109
+ return [2 /*return*/, utils_1.pluginHelper.waitForPluginToStart(url, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
110
+ }); }); };
111
+ if (scenario.isTS) {
112
+ flags.push('--typescript');
60
113
  }
61
- return [4 /*yield*/, utils_1.api.getActivePlugins(release.configuration_sid)];
114
+ setup = function (plugin) { return __awaiter(void 0, void 0, void 0, function () {
115
+ return __generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0: return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:create', plugin.name], __read(flags)))];
118
+ case 1:
119
+ _a.sent();
120
+ utils_1.pluginHelper.changeFlexUIVersionIfRequired(scenario, plugin);
121
+ return [4 /*yield*/, utils_1.spawn('npm', ['i'], { cwd: plugin.dir })];
122
+ case 2:
123
+ _a.sent();
124
+ return [4 /*yield*/, replace_in_file_1.replaceInFile({
125
+ files: utils_1.joinPath(plugin.dir, 'src', 'components', 'CustomTaskList', "CustomTaskList." + ext),
126
+ from: /This is a dismissible demo component.*/,
127
+ to: plugin.componentText,
128
+ })];
129
+ case 3:
130
+ _a.sent();
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ }); };
135
+ // Set up two new plugins
136
+ return [4 /*yield*/, Promise.all([setup(plugin2), setup(plugin3)])];
137
+ case 1:
138
+ // Set up two new plugins
139
+ _b.sent();
140
+ return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start', '--name', plugin1.name + "@" + plugin1.version, '--name', plugin2.name], { detached: true, cwd: plugin3.dir })];
62
141
  case 2:
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 })];
142
+ twilioCliResult = _b.sent();
143
+ return [4 /*yield*/, Promise.all([startPlugin(plugin2.localhostUrl), startPlugin(plugin3.localhostUrl)])];
69
144
  case 3:
70
145
  _b.sent();
71
146
  _b.label = 4;
72
147
  case 4:
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)];
148
+ _b.trys.push([4, 12, 14, 17]);
149
+ // Login to Flex and setup the required flex.twilio.com cookies
150
+ return [4 /*yield*/, exports.setupFlexBeforeLocalhost(config, secrets)];
76
151
  case 5:
77
- // Log into Flex
152
+ // Login to Flex and setup the required flex.twilio.com cookies
78
153
  _b.sent();
79
- return [4 /*yield*/, utils_1.assertion.app.view.adminDashboard.isVisible()];
154
+ // Load local plugin
155
+ return [4 /*yield*/, utils_1.Browser.loadNewPage({ flex: plugin3.localhostUrl, twilioConsole: config.consoleBaseUrl })];
80
156
  case 6:
157
+ // Load local plugin
81
158
  _b.sent();
82
- return [4 /*yield*/, utils_1.Browser.app.getFlexAccountSid()];
159
+ return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort, false)];
83
160
  case 7:
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)];
161
+ _b.sent();
162
+ // Check if local plugin loaded okay
163
+ return [4 /*yield*/, utils_1.assertion.app.view.agentDesktop.isVisible()];
88
164
  case 8:
89
- // Make sure that /plugins contain the plugin
165
+ // Check if local plugin loaded okay
90
166
  _b.sent();
91
- return [4 /*yield*/, utils_1.Browser.app.agentDesktop.open()];
167
+ return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin1.newlineValue)];
92
168
  case 9:
93
169
  _b.sent();
94
- return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin.newlineValue)];
170
+ return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin2.componentText)];
95
171
  case 10:
96
172
  _b.sent();
97
- return [3 /*break*/, 15];
173
+ return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin3.componentText)];
98
174
  case 11:
175
+ _b.sent();
176
+ return [3 /*break*/, 17];
177
+ case 12:
99
178
  e_1 = _b.sent();
100
179
  return [4 /*yield*/, utils_1.Browser.app.takeScreenshot(environment.cwd)];
101
- case 12:
180
+ case 13:
102
181
  _b.sent();
103
182
  throw e_1;
104
- case 13: return [4 /*yield*/, utils_1.Browser.kill()];
105
- case 14:
183
+ case 14: return [4 /*yield*/, utils_1.Browser.kill()];
184
+ case 15:
185
+ _b.sent();
186
+ return [4 /*yield*/, utils_1.killChildProcess(twilioCliResult.child, environment.operatingSystem)];
187
+ case 16:
106
188
  _b.sent();
107
189
  return [7 /*endfinally*/];
108
- case 15: return [2 /*return*/];
190
+ case 17: return [2 /*return*/];
109
191
  }
110
192
  });
111
193
  });
112
194
  };
113
- testSuite.description = 'Released Plugin visible on the Hosted Flex';
195
+ testSuite.description = 'Running {{twilio flex:plugins:start}} with multiple plugins: 2 local and 1 remote';
114
196
  exports.default = testSuite;
115
197
  //# sourceMappingURL=step010.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"step010.js","sourceRoot":"","sources":["../../src/tests/step010.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,3 @@
1
- import { TestSuite, TestParams } from '../core';
2
- /**
3
- * Log into Flex to set the required flex.twilio.com cookies
4
- * @param config Contains the urls requires to load in the browser
5
- * @param secrets Contains account info
6
- */
7
- export declare const setupFlexBeforeLocalhost: (config: TestParams['config'], secrets: TestParams['secrets']) => Promise<void>;
1
+ import { TestSuite } from '../core';
8
2
  declare const testSuite: TestSuite;
9
3
  export default testSuite;
@@ -56,41 +56,20 @@ 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
+ };
59
62
  Object.defineProperty(exports, "__esModule", { value: true });
60
- exports.setupFlexBeforeLocalhost = void 0;
61
63
  /* eslint-disable import/no-unused-modules */
62
- var replace_in_file_1 = require("replace-in-file");
64
+ var semver_1 = __importDefault(require("semver"));
63
65
  var core_1 = require("../core");
64
66
  var utils_1 = require("../utils");
65
- /**
66
- * Log into Flex to set the required flex.twilio.com cookies
67
- * @param config Contains the urls requires to load in the browser
68
- * @param secrets Contains account info
69
- */
70
- var setupFlexBeforeLocalhost = function (config, secrets) { return __awaiter(void 0, void 0, void 0, function () {
71
- return __generator(this, function (_a) {
72
- switch (_a.label) {
73
- case 0: return [4 /*yield*/, utils_1.Browser.create({ flex: config.hostedFlexBaseUrl, twilioConsole: config.consoleBaseUrl })];
74
- case 1:
75
- _a.sent();
76
- return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort)];
77
- case 2:
78
- _a.sent();
79
- // Check if Flex loaded okay
80
- return [4 /*yield*/, utils_1.assertion.app.view.adminDashboard.isVisible()];
81
- case 3:
82
- // Check if Flex loaded okay
83
- _a.sent();
84
- return [2 /*return*/];
85
- }
86
- });
87
- }); };
88
- exports.setupFlexBeforeLocalhost = setupFlexBeforeLocalhost;
89
- // Starting multiple plugins using 2 local and one remote works
67
+ var step010_1 = require("./step010");
68
+ // Starting multiple plugins using --include-remote works
90
69
  var testSuite = function (_a) {
91
70
  var scenario = _a.scenario, config = _a.config, secrets = _a.secrets, environment = _a.environment;
92
71
  return __awaiter(void 0, void 0, void 0, function () {
93
- var plugin1, plugin2, plugin3, flags, ext, startPlugin, setup, twilioCliResult, e_1;
72
+ var plugin1, plugin2, plugin3, resource, oldVersion, twilioCliResult, e_1;
94
73
  return __generator(this, function (_b) {
95
74
  switch (_b.label) {
96
75
  case 0:
@@ -103,95 +82,87 @@ var testSuite = function (_a) {
103
82
  if (!plugin1.newlineValue) {
104
83
  throw new Error('scenario.plugin.newlineValue does not have a valid value');
105
84
  }
106
- flags = [];
107
- ext = scenario.isTS ? 'tsx' : 'jsx';
108
- startPlugin = function (url) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
109
- return [2 /*return*/, utils_1.pluginHelper.waitForPluginToStart(url, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
110
- }); }); };
111
- if (scenario.isTS) {
112
- flags.push('--typescript');
113
- }
114
- setup = function (plugin) { return __awaiter(void 0, void 0, void 0, function () {
115
- return __generator(this, function (_a) {
116
- switch (_a.label) {
117
- case 0: return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:create', plugin.name], __read(flags)))];
118
- case 1:
119
- _a.sent();
120
- utils_1.pluginHelper.changeFlexUIVersionIfRequired(scenario, plugin);
121
- return [4 /*yield*/, utils_1.spawn('npm', ['i'], { cwd: plugin.dir })];
122
- case 2:
123
- _a.sent();
124
- return [4 /*yield*/, replace_in_file_1.replaceInFile({
125
- files: utils_1.joinPath(plugin.dir, 'src', 'components', 'CustomTaskList', "CustomTaskList." + ext),
126
- from: /This is a dismissible demo component.*/,
127
- to: plugin.componentText,
128
- })];
129
- case 3:
130
- _a.sent();
131
- return [2 /*return*/];
132
- }
133
- });
134
- }); };
135
- // Set up two new plugins
136
- return [4 /*yield*/, Promise.all([setup(plugin2), setup(plugin3)])];
85
+ return [4 /*yield*/, utils_1.api.getLatestPluginVersion(plugin2.name)];
137
86
  case 1:
138
- // Set up two new plugins
139
- _b.sent();
140
- return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start', '--name', plugin1.name + "@" + plugin1.version, '--name', plugin2.name], { detached: true, cwd: plugin3.dir })];
87
+ resource = _b.sent();
88
+ oldVersion = (resource === null || resource === void 0 ? void 0 : resource.version) || '0.0.0';
89
+ plugin2.changelog = "e2e test " + Date.now();
90
+ plugin2.version = semver_1.default.inc(oldVersion, 'patch');
91
+ return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:deploy', '--changelog', "\"" + plugin2.changelog + "\"", '--patch', '-l', 'debug'], __read(config.regionFlag)), {
92
+ cwd: plugin2.dir,
93
+ })];
141
94
  case 2:
142
- twilioCliResult = _b.sent();
143
- return [4 /*yield*/, Promise.all([startPlugin(plugin2.localhostUrl), startPlugin(plugin3.localhostUrl)])];
95
+ _b.sent();
96
+ // Release plugin2
97
+ return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray([
98
+ 'flex:plugins:release',
99
+ '--plugin',
100
+ plugin2.name + "@" + plugin2.version,
101
+ '-l',
102
+ 'debug'
103
+ ], __read(config.regionFlag)))];
144
104
  case 3:
105
+ // Release plugin2
145
106
  _b.sent();
146
- _b.label = 4;
107
+ return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start --include-remote'], {
108
+ detached: true,
109
+ cwd: plugin3.dir,
110
+ })];
147
111
  case 4:
148
- _b.trys.push([4, 12, 14, 17]);
149
- // Login to Flex and setup the required flex.twilio.com cookies
150
- return [4 /*yield*/, exports.setupFlexBeforeLocalhost(config, secrets)];
112
+ twilioCliResult = _b.sent();
113
+ return [4 /*yield*/, utils_1.pluginHelper.waitForPluginToStart(plugin3.localhostUrl, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
151
114
  case 5:
115
+ _b.sent();
116
+ _b.label = 6;
117
+ case 6:
118
+ _b.trys.push([6, 14, 16, 19]);
119
+ // Login to Flex and setup the required flex.twilio.com cookies
120
+ return [4 /*yield*/, step010_1.setupFlexBeforeLocalhost(config, secrets)];
121
+ case 7:
152
122
  // Login to Flex and setup the required flex.twilio.com cookies
153
123
  _b.sent();
154
124
  // Load local plugin
155
125
  return [4 /*yield*/, utils_1.Browser.loadNewPage({ flex: plugin3.localhostUrl, twilioConsole: config.consoleBaseUrl })];
156
- case 6:
126
+ case 8:
157
127
  // Load local plugin
158
128
  _b.sent();
159
129
  return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort, false)];
160
- case 7:
130
+ case 9:
161
131
  _b.sent();
162
132
  // Check if local plugin loaded okay
163
133
  return [4 /*yield*/, utils_1.assertion.app.view.agentDesktop.isVisible()];
164
- case 8:
134
+ case 10:
165
135
  // Check if local plugin loaded okay
166
136
  _b.sent();
167
137
  return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin1.newlineValue)];
168
- case 9:
138
+ case 11:
169
139
  _b.sent();
170
140
  return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin2.componentText)];
171
- case 10:
141
+ case 12:
172
142
  _b.sent();
173
143
  return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin3.componentText)];
174
- case 11:
144
+ case 13:
175
145
  _b.sent();
176
- return [3 /*break*/, 17];
177
- case 12:
146
+ return [3 /*break*/, 19];
147
+ case 14:
178
148
  e_1 = _b.sent();
179
149
  return [4 /*yield*/, utils_1.Browser.app.takeScreenshot(environment.cwd)];
180
- case 13:
150
+ case 15:
181
151
  _b.sent();
182
152
  throw e_1;
183
- case 14: return [4 /*yield*/, utils_1.Browser.kill()];
184
- case 15:
153
+ case 16: return [4 /*yield*/, utils_1.Browser.kill()];
154
+ case 17:
185
155
  _b.sent();
186
156
  return [4 /*yield*/, utils_1.killChildProcess(twilioCliResult.child, environment.operatingSystem)];
187
- case 16:
157
+ case 18:
188
158
  _b.sent();
189
159
  return [7 /*endfinally*/];
190
- case 17: return [2 /*return*/];
160
+ case 19: return [2 /*return*/];
191
161
  }
192
162
  });
193
163
  });
194
164
  };
195
- testSuite.description = 'Running {{twilio flex:plugins:start}} with multiple plugins: 2 local and 1 remote';
165
+ testSuite.description =
166
+ 'Running {{twilio flex:plugins:start --include-remote}} with 1 local plugin and all remote plugins';
196
167
  exports.default = testSuite;
197
168
  //# sourceMappingURL=step011.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"step011.js","sourceRoot":"","sources":["../../src/tests/step011.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step011.js","sourceRoot":"","sources":["../../src/tests/step011.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,kDAA4B;AAE5B,gCAA4D;AAC5D,kCAA0F;AAC1F,qCAAqD;AAErD,yDAAyD;AACzD,IAAM,SAAS,GAAc,UAAO,EAAsD;QAApD,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,WAAW,iBAAA;;;;;;oBACpE,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9B,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9B,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACpC,iBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC9B,iBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC9B,iBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAE9B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;wBACzB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;qBAC7E;oBAGgB,qBAAM,WAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAA;;oBAAzD,QAAQ,GAAG,SAA8C;oBACzD,UAAU,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,OAAO,CAAC;oBAChD,OAAO,CAAC,SAAS,GAAG,cAAY,IAAI,CAAC,GAAG,EAAI,CAAC;oBAC7C,OAAO,CAAC,OAAO,GAAG,gBAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;oBAC5D,qBAAM,aAAK,CACT,QAAQ,iBACP,qBAAqB,EAAE,aAAa,EAAE,OAAI,OAAO,CAAC,SAAS,OAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,UAAK,MAAM,CAAC,UAAU,IAC/G;4BACE,GAAG,EAAE,OAAO,CAAC,GAAG;yBACjB,CACF,EAAA;;oBAND,SAMC,CAAC;oBAEF,kBAAkB;oBAClB,qBAAM,aAAK,CAAC,QAAQ;4BAClB,sBAAsB;4BACtB,UAAU;4BACP,OAAO,CAAC,IAAI,SAAI,OAAO,CAAC,OAAS;4BACpC,IAAI;4BACJ,OAAO;kCACJ,MAAM,CAAC,UAAU,GACpB,EAAA;;oBARF,kBAAkB;oBAClB,SAOE,CAAC;oBAGqB,qBAAM,aAAK,CAAC,QAAQ,EAAE,CAAC,qCAAqC,CAAC,EAAE;4BACrF,QAAQ,EAAE,IAAI;4BACd,GAAG,EAAE,OAAO,CAAC,GAAG;yBACjB,CAAC,EAAA;;oBAHI,eAAe,GAAG,SAGtB;oBACF,qBAAM,oBAAY,CAAC,oBAAoB,CACrC,OAAO,CAAC,YAAY,EACpB,iBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAC/B,iBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CACrC,EAAA;;oBAJD,SAIC,CAAC;;;;oBAGA,+DAA+D;oBAC/D,qBAAM,kCAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAA;;oBAD/C,+DAA+D;oBAC/D,SAA+C,CAAC;oBAEhD,oBAAoB;oBACpB,qBAAM,eAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,EAAA;;oBAD/F,oBAAoB;oBACpB,SAA+F,CAAC;oBAChG,qBAAM,eAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,EAAA;;oBAAnG,SAAmG,CAAC;oBAEpG,oCAAoC;oBACpC,qBAAM,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAA;;oBADjD,oCAAoC;oBACpC,SAAiD,CAAC;oBAElD,qBAAM,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAA;;oBAAvE,SAAuE,CAAC;oBACxE,qBAAM,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAA;;oBAAxE,SAAwE,CAAC;oBACzE,qBAAM,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAA;;oBAAxE,SAAwE,CAAC;;;;oBAEzE,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;oBACrB,qBAAM,wBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,EAAA;;oBAA1E,SAA0E,CAAC;;;;;;CAE9E,CAAC;AACF,SAAS,CAAC,WAAW;IACnB,mGAAmG,CAAC;AAEtG,kBAAe,SAAS,CAAC"}
@@ -61,108 +61,121 @@ 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");
64
65
  var semver_1 = __importDefault(require("semver"));
65
66
  var core_1 = require("../core");
66
67
  var utils_1 = require("../utils");
67
- var step011_1 = require("./step011");
68
- // Starting multiple plugins using --include-remote works
68
+ var step010_1 = require("./step010");
69
69
  var testSuite = function (_a) {
70
70
  var scenario = _a.scenario, config = _a.config, secrets = _a.secrets, environment = _a.environment;
71
71
  return __awaiter(void 0, void 0, void 0, function () {
72
- var plugin1, plugin2, plugin3, resource, oldVersion, twilioCliResult, e_1;
72
+ var ext, tmpComponentText, startPlugin, plugin1, plugin2, plugin3, resource, oldVersion, flags, twilioCliResult, e_1;
73
73
  return __generator(this, function (_b) {
74
74
  switch (_b.label) {
75
75
  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
+ }); }); };
76
81
  plugin1 = scenario.plugins[0];
77
82
  plugin2 = scenario.plugins[1];
78
83
  plugin3 = scenario.plugins[2];
79
84
  utils_1.assertion.not.isNull(plugin1);
80
85
  utils_1.assertion.not.isNull(plugin2);
81
86
  utils_1.assertion.not.isNull(plugin3);
82
- if (!plugin1.newlineValue) {
83
- throw new Error('scenario.plugin.newlineValue does not have a valid value');
84
- }
85
- return [4 /*yield*/, utils_1.api.getLatestPluginVersion(plugin2.name)];
87
+ utils_1.assertion.not.isNull(plugin1.newlineValue, 'scenario.plugins[0].newlineValue does not have a valid value');
88
+ // Edit remote plugin to have different text
89
+ return [4 /*yield*/, replace_in_file_1.replaceInFile({
90
+ files: utils_1.joinPath(plugin1.dir, 'src', 'components', 'CustomTaskList', "CustomTaskList." + ext),
91
+ from: plugin1.componentText,
92
+ to: tmpComponentText,
93
+ })];
86
94
  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:
87
99
  resource = _b.sent();
88
100
  oldVersion = (resource === null || resource === void 0 ? void 0 : resource.version) || '0.0.0';
89
- plugin2.changelog = "e2e test " + Date.now();
90
- plugin2.version = semver_1.default.inc(oldVersion, 'patch');
91
- return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:deploy', '--changelog', "\"" + plugin2.changelog + "\"", '--patch', '-l', 'debug'], __read(config.regionFlag)), {
92
- cwd: plugin2.dir,
101
+ plugin1.version = semver_1.default.inc(oldVersion, 'patch');
102
+ return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:deploy', '--changelog', "\"" + plugin1.changelog + "\"", '--patch', '-l', 'debug'], __read(config.regionFlag)), {
103
+ cwd: plugin1.dir,
93
104
  })];
94
- case 2:
105
+ case 3:
95
106
  _b.sent();
96
- // Release plugin2
107
+ // Release the edited plugin
97
108
  return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray([
98
109
  'flex:plugins:release',
99
110
  '--plugin',
100
- plugin2.name + "@" + plugin2.version,
101
111
  '-l',
102
- 'debug'
112
+ 'debug',
113
+ plugin1.name + "@" + plugin1.version
103
114
  ], __read(config.regionFlag)))];
104
- case 3:
105
- // Release plugin2
115
+ case 4:
116
+ // Release the edited plugin
106
117
  _b.sent();
107
- return [4 /*yield*/, utils_1.spawn('twilio', ['flex:plugins:start --include-remote'], {
118
+ flags = ['--name', plugin1.name + "@" + oldVersion, '--name', plugin2.name];
119
+ return [4 /*yield*/, utils_1.spawn('twilio', __spreadArray(['flex:plugins:start', '-l', 'debug'], __read(flags)), {
108
120
  detached: true,
109
121
  cwd: plugin3.dir,
110
122
  })];
111
- case 4:
112
- twilioCliResult = _b.sent();
113
- return [4 /*yield*/, utils_1.pluginHelper.waitForPluginToStart(plugin3.localhostUrl, core_1.testParams.config.start.timeout, core_1.testParams.config.start.pollInterval)];
114
123
  case 5:
115
- _b.sent();
116
- _b.label = 6;
124
+ twilioCliResult = _b.sent();
125
+ return [4 /*yield*/, Promise.all([startPlugin(plugin2.localhostUrl), startPlugin(plugin3.localhostUrl)])];
117
126
  case 6:
118
- _b.trys.push([6, 14, 16, 19]);
119
- // Login to Flex and setup the required flex.twilio.com cookies
120
- return [4 /*yield*/, step011_1.setupFlexBeforeLocalhost(config, secrets)];
127
+ _b.sent();
128
+ _b.label = 7;
121
129
  case 7:
130
+ _b.trys.push([7, 15, 17, 20]);
131
+ // Login to Flex and setup the required flex.twilio.com cookies
132
+ return [4 /*yield*/, step010_1.setupFlexBeforeLocalhost(config, secrets)];
133
+ case 8:
122
134
  // Login to Flex and setup the required flex.twilio.com cookies
123
135
  _b.sent();
124
136
  // Load local plugin
125
137
  return [4 /*yield*/, utils_1.Browser.loadNewPage({ flex: plugin3.localhostUrl, twilioConsole: config.consoleBaseUrl })];
126
- case 8:
138
+ case 9:
127
139
  // Load local plugin
128
140
  _b.sent();
129
141
  return [4 /*yield*/, utils_1.Browser.app.twilioConsole.login('admin', secrets.api.accountSid, config.localhostPort, false)];
130
- case 9:
142
+ case 10:
131
143
  _b.sent();
132
144
  // Check if local plugin loaded okay
133
145
  return [4 /*yield*/, utils_1.assertion.app.view.agentDesktop.isVisible()];
134
- case 10:
146
+ case 11:
135
147
  // Check if local plugin loaded okay
136
148
  _b.sent();
149
+ // @ts-ignore
137
150
  return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin1.newlineValue)];
138
- case 11:
139
- _b.sent();
140
- return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin2.componentText)];
141
151
  case 12:
152
+ // @ts-ignore
142
153
  _b.sent();
143
- return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin3.componentText)];
154
+ return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin2.componentText)];
144
155
  case 13:
145
156
  _b.sent();
146
- return [3 /*break*/, 19];
157
+ return [4 /*yield*/, utils_1.assertion.app.view.plugins.plugin.isVisible(plugin3.componentText)];
147
158
  case 14:
159
+ _b.sent();
160
+ return [3 /*break*/, 20];
161
+ case 15:
148
162
  e_1 = _b.sent();
149
163
  return [4 /*yield*/, utils_1.Browser.app.takeScreenshot(environment.cwd)];
150
- case 15:
164
+ case 16:
151
165
  _b.sent();
152
166
  throw e_1;
153
- case 16: return [4 /*yield*/, utils_1.Browser.kill()];
154
- case 17:
167
+ case 17: return [4 /*yield*/, utils_1.Browser.kill()];
168
+ case 18:
155
169
  _b.sent();
156
170
  return [4 /*yield*/, utils_1.killChildProcess(twilioCliResult.child, environment.operatingSystem)];
157
- case 18:
171
+ case 19:
158
172
  _b.sent();
159
173
  return [7 /*endfinally*/];
160
- case 19: return [2 /*return*/];
174
+ case 20: return [2 /*return*/];
161
175
  }
162
176
  });
163
177
  });
164
178
  };
165
- testSuite.description =
166
- 'Running {{twilio flex:plugins:start --include-remote}} with 1 local plugin and all remote plugins';
179
+ testSuite.description = 'Running {{twilio flex:plugins:start}} with multiple plugins: 2 local and 1 versioned';
167
180
  exports.default = testSuite;
168
181
  //# sourceMappingURL=step012.js.map