Skip to content

Commit 0165c79

Browse files
authored
Merge pull request #462 from twilio/optimize-toolkit-2
more optimization
2 parents ebb1465 + 0cbd1d1 commit 0165c79

File tree

5 files changed

+48
-36
lines changed

5 files changed

+48
-36
lines changed

packages/flex-plugins-api-toolkit/src/scripts/__tests__/createConfiguration.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,9 @@ describe('CreateConfigurationScript', () => {
282282

283283
const result = await script(option);
284284
expect(activeRelease).not.toHaveBeenCalled();
285-
expect(getPlugin).toHaveBeenCalledTimes(3);
285+
expect(getPlugin).toHaveBeenCalledTimes(2);
286286
expect(getPlugin).toHaveBeenCalledWith(plugin1.sid);
287-
expect(getVersion).toHaveBeenCalledTimes(3);
287+
expect(getVersion).toHaveBeenCalledTimes(2);
288288
expect(getVersion).toHaveBeenCalledWith(plugin1.unique_name, 'version1');
289289
expect(getVersion).toHaveBeenCalledWith(plugin1.sid, pluginVersion1.sid);
290290
expect(getLatestVersion).not.toHaveBeenCalled();
@@ -333,12 +333,12 @@ describe('CreateConfigurationScript', () => {
333333

334334
const result = await script(option);
335335
expect(activeRelease).toHaveBeenCalledTimes(1);
336-
expect(getPlugin).toHaveBeenCalledTimes(5);
336+
expect(getPlugin).toHaveBeenCalledTimes(3);
337337
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin1.unique_name);
338338
expect(getPlugin).not.toHaveBeenCalledWith(configuredPlugin2.unique_name);
339339
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin1.plugin_sid);
340340
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin2.plugin_sid);
341-
expect(getVersion).toHaveBeenCalledTimes(5);
341+
expect(getVersion).toHaveBeenCalledTimes(3);
342342
expect(getVersion).toHaveBeenCalledWith(plugin1.unique_name, 'version1');
343343
expect(getVersion).toHaveBeenCalledWith(plugin1.sid, pluginVersion1.sid);
344344
expect(getVersion).not.toHaveBeenCalledWith(plugin2.unique_name, pluginVersion2.version);
@@ -504,12 +504,12 @@ describe('CreateConfigurationScript', () => {
504504

505505
const result = await script(option);
506506
expect(activeRelease).not.toHaveBeenCalled();
507-
expect(getPlugin).toHaveBeenCalledTimes(5);
507+
expect(getPlugin).toHaveBeenCalledTimes(3);
508508
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin1.unique_name);
509509
expect(getPlugin).not.toHaveBeenCalledWith(configuredPlugin2.unique_name);
510510
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin1.plugin_sid);
511511
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin2.plugin_sid);
512-
expect(getVersion).toHaveBeenCalledTimes(5);
512+
expect(getVersion).toHaveBeenCalledTimes(3);
513513
expect(getVersion).toHaveBeenCalledWith(plugin1.unique_name, 'version1');
514514
expect(getVersion).toHaveBeenCalledWith(plugin1.sid, pluginVersion1.sid);
515515
expect(getVersion).not.toHaveBeenCalledWith(plugin2.unique_name, pluginVersion2.version);
@@ -585,10 +585,10 @@ describe('CreateConfigurationScript', () => {
585585

586586
const result = await script(option);
587587
expect(activeRelease).toHaveBeenCalledTimes(1);
588-
expect(getPlugin).toHaveBeenCalledTimes(3);
588+
expect(getPlugin).toHaveBeenCalledTimes(2);
589589
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin1.unique_name);
590590
expect(getPlugin).toHaveBeenCalledWith(configuredPlugin1.plugin_sid);
591-
expect(getVersion).toHaveBeenCalledTimes(3);
591+
expect(getVersion).toHaveBeenCalledTimes(2);
592592
expect(getVersion).toHaveBeenCalledWith(plugin1.unique_name, 'version1');
593593
expect(getVersion).toHaveBeenCalledWith(plugin1.sid, pluginVersion1.sid);
594594
expect(getLatestVersion).not.toHaveBeenCalled();

packages/flex-plugins-api-toolkit/src/scripts/__tests__/describeRelease.test.ts

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
ReleasesClient,
66
} from 'flex-plugins-api-client';
77

8-
import describeReleaseScript from '../describeRelease';
8+
import describeReleaseScript, { DescribeRelease } from '../describeRelease';
99
import { describeConfiguration as configuration, release } from './mockStore';
1010
import * as describeConfigurationScript from '../describeConfiguration';
1111

@@ -21,6 +21,17 @@ describe('describeRelease', () => {
2121
const internal = jest.spyOn(describeConfigurationScript, 'internalDescribeConfiguration');
2222

2323
const script = describeReleaseScript(configurationsClient, configuredPluginsClient, releaseClient);
24+
const expectResult = (result: DescribeRelease) => {
25+
expect(result.sid).toEqual(release.sid);
26+
expect(result.configurationSid).toEqual(release.configuration_sid);
27+
expect(result.isActive).toEqual(false);
28+
expect(result.configuration.sid).toEqual(configuration.sid);
29+
expect(result.configuration.description).toEqual(configuration.description);
30+
expect(result.configuration.name).toEqual(configuration.name);
31+
expect(result.configuration.isActive).toEqual(configuration.isActive);
32+
expect(result.configuration.dateCreated).toEqual(configuration.dateCreated);
33+
expect(result.dateCreated).toEqual(release.date_created);
34+
};
2435

2536
beforeEach(() => {
2637
jest.resetAllMocks();
@@ -48,16 +59,7 @@ describe('describeRelease', () => {
4859
sid: release.sid,
4960
});
5061

51-
expect(result.sid).toEqual(release.sid);
52-
expect(result.configurationSid).toEqual(release.configuration_sid);
53-
expect(result.isActive).toEqual(false);
54-
expect(result.configuration.sid).toEqual(configuration.sid);
55-
expect(result.configuration.description).toEqual(configuration.description);
56-
expect(result.configuration.name).toEqual(configuration.name);
57-
expect(result.configuration.isActive).toEqual(configuration.isActive);
58-
expect(result.configuration.dateCreated).toEqual(configuration.dateCreated);
59-
expect(result.dateCreated).toEqual(release.date_created);
60-
62+
expectResult(result);
6163
expect(get).toHaveBeenCalledTimes(1);
6264
expect(get).toHaveBeenCalledWith(release.sid);
6365
expect(internal).toHaveBeenCalledTimes(1);
@@ -66,4 +68,16 @@ describe('describeRelease', () => {
6668
expect(describeConfiguration).toHaveBeenCalledWith({ sid: release.configuration_sid }, release);
6769
expect(active).toHaveBeenCalledTimes(1);
6870
});
71+
72+
it('should not fetch release if it is already provided', async () => {
73+
describeConfiguration.mockResolvedValue(configuration);
74+
internal.mockImplementation(() => describeConfiguration);
75+
const result = await script({
76+
sid: release.sid,
77+
resources: { release },
78+
});
79+
80+
expectResult(result);
81+
expect(get).not.toHaveBeenCalled();
82+
});
6983
});

packages/flex-plugins-api-toolkit/src/scripts/createConfiguration.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,19 @@ export default function createConfiguration(
164164
// Fetch installed plugins
165165
const configuredPluginsPage = await configuredPluginClient.list(configuration.sid);
166166
const installedPlugins: InstalledPlugin[] = await Promise.all(
167-
configuredPluginsPage.plugins.map(async (installedPlugin) => {
168-
const plugin = await pluginClient.get(installedPlugin.plugin_sid);
169-
const version = await pluginVersionClient.get(installedPlugin.plugin_sid, installedPlugin.plugin_version_sid);
170-
167+
configuredPluginsPage.plugins.map(async (p) => {
171168
return {
172-
pluginSid: installedPlugin.plugin_sid,
173-
pluginVersionSid: installedPlugin.plugin_version_sid,
174-
name: installedPlugin.unique_name,
175-
version: installedPlugin.version,
176-
url: installedPlugin.plugin_url,
177-
phase: installedPlugin.phase,
178-
friendlyName: plugin.friendly_name,
179-
description: plugin.description,
180-
changelog: version.changelog,
181-
isPrivate: installedPlugin.private,
182-
isArchived: plugin.archived || version.archived,
169+
pluginSid: p.plugin_sid,
170+
pluginVersionSid: p.plugin_version_sid,
171+
name: p.unique_name,
172+
version: p.version,
173+
url: p.plugin_url,
174+
phase: p.phase,
175+
friendlyName: p.friendly_name,
176+
description: p.description,
177+
changelog: p.changelog,
178+
isPrivate: p.private,
179+
isArchived: p.plugin_archived || p.plugin_version_archived,
183180
};
184181
}),
185182
);

packages/flex-plugins-api-toolkit/src/scripts/describeConfiguration.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export function internalDescribeConfiguration(
6565
description: p.description,
6666
changelog: p.changelog,
6767
isPrivate: p.private,
68-
isArchived: p.plugin_archived,
68+
isArchived: p.plugin_archived || p.plugin_version_archived,
6969
phase: p.phase,
7070
};
7171
});

packages/flex-plugins-api-toolkit/src/scripts/describeRelease.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { Script } from '.';
99
import { DescribeConfiguration, internalDescribeConfiguration } from './describeConfiguration';
1010

1111
interface OptionalResources {
12+
release?: ReleaseResource;
1213
activeRelease?: ReleaseResource;
1314
}
1415

@@ -44,7 +45,7 @@ export default function describeRelease(
4445
return async (option: DescribeReleaseOption) => {
4546
const resources = option.resources ? option.resources : ({} as OptionalResources);
4647

47-
const release = await releasesClient.get(option.sid);
48+
const release = await (resources.release ? Promise.resolve(resources.release) : releasesClient.get(option.sid));
4849
const active = await (resources.activeRelease ? Promise.resolve(resources.activeRelease) : releasesClient.active());
4950

5051
const configuration = await internalDescribeConfiguration(configurationClient, configuredPluginClient)(

0 commit comments

Comments
 (0)