Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit b89d036

Browse files
Update test cases
1 parent b9a7352 commit b89d036

File tree

3 files changed

+60
-31
lines changed

3 files changed

+60
-31
lines changed

src/script/acquisition-sdk.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ export class AcquisitionManager {
8484

8585
// Used for Tests
8686
public static get apiCallsDisabled(): boolean {
87-
return this._apiCallsDisabled;
87+
return AcquisitionManager._apiCallsDisabled;
8888
}
8989

9090
private handleRequestFailure(statusCode: number) {
@@ -169,7 +169,7 @@ export class AcquisitionManager {
169169
public reportStatusDeploy(deployedPackage?: Package, status?: string, previousLabelOrAppVersion?: string, previousDeploymentKey?: string, callback?: Callback<void>): void {
170170
if (AcquisitionManager._apiCallsDisabled) {
171171
console.log(`[CodePush] Api calls are disabled, skipping API call`);
172-
callback(null, null)
172+
callback(/*error*/ null, /*not used*/ null);
173173
return;
174174
}
175175

@@ -236,7 +236,7 @@ export class AcquisitionManager {
236236
public reportStatusDownload(downloadedPackage: Package, callback?: Callback<void>): void {
237237
if (AcquisitionManager._apiCallsDisabled) {
238238
console.log(`[CodePush] Api calls are disabled, skipping API call`);
239-
callback(null, null)
239+
callback(/*error*/ null, /*not used*/ null);
240240
return;
241241
}
242242

src/test/acquisition-rest-mock.ts

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,31 @@ var reportStatusDeployUrl = serverUrl + publicPrefixUrl + "/report_status/deploy
2222
var reportStatusDownloadUrl = serverUrl + publicPrefixUrl + "/report_status/download";
2323
var updateCheckUrl = serverUrl + publicPrefixUrl + "/update_check?";
2424

25+
export function updateMockUrl() {
26+
reportStatusDeployUrl = serverUrl + publicPrefixUrl + "/report_status/deploy";
27+
reportStatusDownloadUrl = serverUrl + publicPrefixUrl + "/report_status/download";
28+
updateCheckUrl = serverUrl + publicPrefixUrl + "/update_check?";
29+
}
30+
31+
2532
export class HttpRequester implements acquisitionSdk.Http.Requester {
33+
private expectedStatusCode: number;
34+
35+
constructor(expectedStatusCode?: number) {
36+
this.expectedStatusCode = expectedStatusCode;
37+
}
2638
public request(verb: acquisitionSdk.Http.Verb, url: string, requestBodyOrCallback: string | acquisitionSdk.Callback<acquisitionSdk.Http.Response>, callback?: acquisitionSdk.Callback<acquisitionSdk.Http.Response>): void {
2739
if (!callback && typeof requestBodyOrCallback === "function") {
2840
callback = <acquisitionSdk.Callback<acquisitionSdk.Http.Response>>requestBodyOrCallback;
2941
}
3042

3143
if (verb === acquisitionSdk.Http.Verb.GET && url.indexOf(updateCheckUrl) === 0) {
3244
var params = querystring.parse(url.substring(updateCheckUrl.length));
33-
Server.onUpdateCheck(params, callback);
45+
Server.onUpdateCheck(params, callback,this.expectedStatusCode);
3446
} else if (verb === acquisitionSdk.Http.Verb.POST && url === reportStatusDeployUrl) {
35-
Server.onReportStatus(callback);
47+
Server.onReportStatus(callback,this.expectedStatusCode);
3648
} else if (verb === acquisitionSdk.Http.Verb.POST && url === reportStatusDownloadUrl) {
37-
Server.onReportStatus(callback);
49+
Server.onReportStatus(callback,this.expectedStatusCode);
3850
} else {
3951
throw new Error("Unexpected call");
4052
}
@@ -73,7 +85,7 @@ class Server {
7385
}
7486
}
7587

76-
public static onUpdateCheck(params: any, callback: acquisitionSdk.Callback<acquisitionSdk.Http.Response>): void {
88+
public static onUpdateCheck(params: any, callback: acquisitionSdk.Callback<acquisitionSdk.Http.Response>, expectedStatusCode?: number): void {
7789
var updateRequest: types.UpdateCheckRequest = {
7890
deployment_key: params.deployment_key,
7991
app_version: params.app_version,
@@ -97,13 +109,13 @@ class Server {
97109
}
98110

99111
callback(/*error=*/ null, {
100-
statusCode: 200,
112+
statusCode: expectedStatusCode ? expectedStatusCode : 200,
101113
body: JSON.stringify({ update_info: updateInfo })
102114
});
103115
}
104116
}
105117

106-
public static onReportStatus(callback: acquisitionSdk.Callback<acquisitionSdk.Http.Response>): void {
107-
callback(/*error*/ null, /*response*/ { statusCode: 200 });
118+
public static onReportStatus(callback: acquisitionSdk.Callback<acquisitionSdk.Http.Response>, expectedStatusCode: number): void {
119+
callback(/*error*/ null, /*response*/ { statusCode: expectedStatusCode ? expectedStatusCode : 200 });
108120
}
109121
}

src/test/acquisition-sdk.ts

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import * as acquisitionSdk from "../script/acquisition-sdk";
44
import * as acquisitionRestMock from "./acquisition-rest-mock";
55
import * as types from "../script/types";
66
import { CodePushPackageError } from "../script/code-push-error"
7+
import { updateMockUrl } from "./acquisition-rest-mock";
78

89
const mockApi = acquisitionRestMock;
910
var latestPackage: types.UpdateCheckResponse = clone(mockApi.latestPackage);
@@ -44,6 +45,8 @@ var nativeUpdateResult: acquisitionSdk.NativeUpdateNotification = {
4445
describe("Acquisition SDK", () => {
4546
beforeEach(() => {
4647
mockApi.latestPackage = clone(latestPackage);
48+
mockApi.serverUrl = "http://myurl.com";
49+
updateMockUrl();
4750
});
4851

4952
it("Package with lower label and different package hash gives update", (done: Mocha.Done) => {
@@ -226,50 +229,64 @@ describe("Acquisition SDK", () => {
226229
done();
227230
}));
228231
});
232+
it("disables api calls on unsuccessful response", (done: Mocha.Done): void => {
233+
var invalidJsonResponse: acquisitionSdk.Http.Response = {
234+
statusCode: 404,
235+
body: "Not found"
236+
};
229237

230-
it("doesnt disable api calls on successful response", (done: Mocha.Done): void => {
231-
var acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.HttpRequester(), configuration);
238+
mockApi.serverUrl = "https://codepush.appcenter.ms";
239+
updateMockUrl();
240+
configuration = { ...configuration, serverUrl: "https://codepush.appcenter.ms" };
232241

242+
var acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.CustomResponseHttpRequester(invalidJsonResponse), configuration);
233243
acquisition.queryUpdateWithCurrentPackage(templateCurrentPackage, (error: Error, returnPackage: acquisitionSdk.RemotePackage | acquisitionSdk.NativeUpdateNotification) => {
234-
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, false);
244+
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, true);
245+
(acquisitionSdk.AcquisitionManager as any)._apiCallsDisabled = false;
235246
});
236247

237248
acquisition.queryUpdateWithCurrentPackage(templateCurrentPackage, (error: Error, returnPackage: acquisitionSdk.RemotePackage | acquisitionSdk.NativeUpdateNotification) => {
238-
assert.notStrictEqual(returnPackage, null)
249+
assert.strictEqual(returnPackage, null);
250+
acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.HttpRequester(404), configuration);
251+
(acquisitionSdk.AcquisitionManager as any)._apiCallsDisabled = false;
252+
239253
});
240254

241255
acquisition.reportStatusDeploy(templateCurrentPackage, acquisitionSdk.AcquisitionStatus.DeploymentSucceeded, "1.5.0", mockApi.validDeploymentKey, ((error: Error, parameter: void): void => {
242-
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, false);
243-
}))
256+
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, true);
257+
acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.HttpRequester(404), configuration);
258+
(acquisitionSdk.AcquisitionManager as any)._apiCallsDisabled = false;
259+
}));
244260

245261
acquisition.reportStatusDownload(templateCurrentPackage, ((error: Error, parameter: void): void => {
246-
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, false);
262+
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, true);
263+
acquisition = acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.CustomResponseHttpRequester(invalidJsonResponse), configuration);
264+
(acquisitionSdk.AcquisitionManager as any)._apiCallsDisabled = false;
247265
}));
266+
248267
done();
249268
})
269+
it("doesn't disable api calls on successful response", (done: Mocha.Done): void => {
270+
var acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.HttpRequester(), configuration);
271+
mockApi.serverUrl = "https://codepush.appcenter.ms";
272+
updateMockUrl();
250273

251-
it("disables api calls on unsuccessful response", (done: Mocha.Done): void => {
252-
var invalidJsonResponse: acquisitionSdk.Http.Response = {
253-
statusCode: 404,
254-
body: "Not found"
255-
};
256-
configuration = { ...configuration, serverUrl: "https://codepush.appcenter.ms" }
257-
var acquisition = new acquisitionSdk.AcquisitionManager(new mockApi.CustomResponseHttpRequester(invalidJsonResponse), configuration);
274+
acquisition.queryUpdateWithCurrentPackage(templateCurrentPackage, (error: Error, returnPackage: acquisitionSdk.RemotePackage | acquisitionSdk.NativeUpdateNotification) => {
275+
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, false);
276+
});
258277

259278
acquisition.queryUpdateWithCurrentPackage(templateCurrentPackage, (error: Error, returnPackage: acquisitionSdk.RemotePackage | acquisitionSdk.NativeUpdateNotification) => {
260-
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, true);
279+
assert.notStrictEqual(returnPackage, null);
261280
});
262281

263282
acquisition.reportStatusDeploy(templateCurrentPackage, acquisitionSdk.AcquisitionStatus.DeploymentSucceeded, "1.5.0", mockApi.validDeploymentKey, ((error: Error, parameter: void): void => {
264-
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, true);
265-
}))
283+
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, false);
284+
}));
285+
266286
acquisition.reportStatusDownload(templateCurrentPackage, ((error: Error, parameter: void): void => {
267-
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, true);
287+
assert.strictEqual(acquisitionSdk.AcquisitionManager.apiCallsDisabled, false);
268288
}));
269289

270-
acquisition.queryUpdateWithCurrentPackage(templateCurrentPackage, (error: Error, returnPackage: acquisitionSdk.RemotePackage | acquisitionSdk.NativeUpdateNotification) => {
271-
assert.strictEqual(returnPackage, null);
272-
})
273290
done();
274291
})
275292

0 commit comments

Comments
 (0)