Skip to content

Commit 0842ab6

Browse files
author
Fatme
authored
Merge pull request #4267 from NativeScript/fatme/force-option
fix(preview-publicApi): Add force option when getting the plugin's warnings
2 parents 988575f + d1517e3 commit 0842ab6

File tree

2 files changed

+11
-65
lines changed

2 files changed

+11
-65
lines changed

lib/services/livesync/playground/preview-app-plugins-service.ts

+11-16
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import { NODE_MODULES_DIR_NAME } from "../../../common/constants";
77
import { PLATFORMS_DIR_NAME, PACKAGE_JSON_FILE_NAME } from "../../../constants";
88

99
export class PreviewAppPluginsService implements IPreviewAppPluginsService {
10-
private previewAppVersionWarnings: IDictionary<string[]> = {};
11-
1210
constructor(private $errors: IErrors,
1311
private $fs: IFileSystem,
1412
private $logger: ILogger,
@@ -23,20 +21,17 @@ export class PreviewAppPluginsService implements IPreviewAppPluginsService {
2321
this.$errors.failWithoutHelp("No version of preview app provided.");
2422
}
2523

26-
if (!this.previewAppVersionWarnings[device.previewAppVersion]) {
27-
const devicePlugins = this.getDevicePlugins(device);
28-
const localPlugins = this.getLocalPlugins(data.projectDir);
29-
const warnings = _.keys(localPlugins)
30-
.map(localPlugin => {
31-
const localPluginVersion = localPlugins[localPlugin];
32-
const devicePluginVersion = devicePlugins[localPlugin];
33-
return this.getWarningForPlugin(data, localPlugin, localPluginVersion, devicePluginVersion, device);
34-
})
35-
.filter(item => !!item);
36-
this.previewAppVersionWarnings[device.previewAppVersion] = warnings;
37-
}
38-
39-
return this.previewAppVersionWarnings[device.previewAppVersion];
24+
const devicePlugins = this.getDevicePlugins(device);
25+
const localPlugins = this.getLocalPlugins(data.projectDir);
26+
const warnings = _.keys(localPlugins)
27+
.map(localPlugin => {
28+
const localPluginVersion = localPlugins[localPlugin];
29+
const devicePluginVersion = devicePlugins[localPlugin];
30+
return this.getWarningForPlugin(data, localPlugin, localPluginVersion, devicePluginVersion, device);
31+
})
32+
.filter(item => !!item);
33+
34+
return warnings;
4035
}
4136

4237
public async comparePluginsOnDevice(data: IPreviewAppLiveSyncData, device: Device): Promise<void> {

test/services/playground/preview-app-plugins-service.ts

-49
Original file line numberDiff line numberDiff line change
@@ -86,55 +86,6 @@ function setup(localPlugins: IStringDictionary, previewAppPlugins: IStringDictio
8686

8787
describe("previewAppPluginsService", () => {
8888
describe("comparePluginsOnDevice without bundle", () => {
89-
it("should persist warnings per preview app's version", async () => {
90-
const localPlugins = {
91-
"nativescript-facebook": "2.2.3",
92-
"nativescript-theme-core": "1.0.4",
93-
"tns-core-modules": "4.2.0"
94-
};
95-
const previewAppPlugins = {
96-
"nativescript-theme-core": "2.0.4",
97-
"tns-core-modules": "4.2.0"
98-
};
99-
const injector = createTestInjector(localPlugins);
100-
const previewAppPluginsService = injector.resolve("previewAppPluginsService");
101-
102-
let isGetDevicePluginsCalled = false;
103-
const originalGetDevicePlugins = (<any>previewAppPluginsService).getDevicePlugins;
104-
(<any>previewAppPluginsService).getDevicePlugins = (device: Device) => {
105-
isGetDevicePluginsCalled = true;
106-
return originalGetDevicePlugins(device);
107-
};
108-
let isGetLocalPluginsCalled = false;
109-
const originalGetLocalPlugins = (<any>previewAppPluginsService).getLocalPlugins;
110-
(<any>previewAppPluginsService).getLocalPlugins = () => {
111-
isGetLocalPluginsCalled = true;
112-
return originalGetLocalPlugins.apply(previewAppPluginsService, [projectDir]);
113-
};
114-
115-
const previewLiveSyncData = createPreviewLiveSyncData({ bundle: false });
116-
117-
await previewAppPluginsService.comparePluginsOnDevice(previewLiveSyncData, createDevice(JSON.stringify(previewAppPlugins)));
118-
119-
const expectedWarnings = [
120-
util.format(PluginComparisonMessages.PLUGIN_NOT_INCLUDED_IN_PREVIEW_APP, "nativescript-facebook", deviceId),
121-
util.format(PluginComparisonMessages.LOCAL_PLUGIN_WITH_DIFFERENCE_IN_MAJOR_VERSION, "nativescript-theme-core", "1.0.4", "2.0.4")
122-
];
123-
assert.isTrue(isGetDevicePluginsCalled);
124-
assert.isTrue(isGetLocalPluginsCalled);
125-
assert.deepEqual(warnParams, expectedWarnings);
126-
127-
isGetDevicePluginsCalled = false;
128-
isGetLocalPluginsCalled = false;
129-
warnParams = [];
130-
131-
await previewAppPluginsService.comparePluginsOnDevice(previewLiveSyncData, createDevice(JSON.stringify(previewAppPlugins)));
132-
133-
assert.isFalse(isGetDevicePluginsCalled);
134-
assert.isFalse(isGetLocalPluginsCalled);
135-
assert.deepEqual(warnParams, expectedWarnings);
136-
});
137-
13889
const testCases = [
13990
{
14091
name: "should show warning for plugin not included in preview app",

0 commit comments

Comments
 (0)