diff --git a/src/models/ApiResponse.ts b/src/models/ApiResponse.ts index 87eafbd..e615d2e 100644 --- a/src/models/ApiResponse.ts +++ b/src/models/ApiResponse.ts @@ -45,6 +45,7 @@ export class ApiResponse { */ public AsGetPagedAppsResponseType(): ApiResponse { var apiResponse = this as ApiResponse; + var apps = apiResponse.data.items.map((item: any) => { return new App(item.href, item.id, item.name); }); diff --git a/tests/ApiResponse.spec.ts b/tests/ApiResponse.spec.ts index 3ee8eeb..dc092be 100644 --- a/tests/ApiResponse.spec.ts +++ b/tests/ApiResponse.spec.ts @@ -84,7 +84,7 @@ describe('ApiResponse', function () { ); }); - it('should return an ApiResponse', function () { + it('should return an ApiResponse when data contains app items', function () { var mockApiResponse = { pageNumber: 1, pageSize: 2, @@ -118,5 +118,27 @@ describe('ApiResponse', function () { expect(appsPagedResponse.data.items[0]).to.be.instanceOf(App); expect(appsPagedResponse.data.items[1]).to.be.instanceOf(App); }); + + it('should return an ApiResponse when data contains app items', function () { + var mockApiResponse = { + pageNumber: 0, + pageSize: 0, + totalPages: 0, + totalRecords: 0, + items: [], + }; + + var apiResponse = new ApiResponse(200, 'OK', mockApiResponse); + var appsPagedResponse = apiResponse.AsGetPagedAppsResponseType(); + + expect(appsPagedResponse).to.be.instanceOf(ApiResponse); + expect(appsPagedResponse.data).to.be.instanceOf(GetPagedAppsResponse); + expect(appsPagedResponse.data.totalPages).to.equal(0); + expect(appsPagedResponse.data.totalRecords).to.equal(0); + expect(appsPagedResponse.data.pageNumber).to.equal(0); + expect(appsPagedResponse.data.pageSize).to.equal(0); + expect(appsPagedResponse.data.items).to.be.instanceOf(Array); + expect(appsPagedResponse.data.items).to.have.lengthOf(0); + }); }); });