jasmine.Ajax.withMock(() => { jasmine.Ajax.stubRequest(dataSharingEncryptedUsageDataURL, undefined, 'POST').andReturn({ responseText: encryptedData, status: 200, responseHeaders: { 'Content-Type': 'application/octet-stream' } }); const successCallback = jasmine.createSpy().and.callFake((data: any ) => { expect(data).toBe(encryptedData); }); const encryptionKeys = { signature: 'some-signed-key', subordinate_public_key: 'some-public-key' } as EncryptionKeys; UsageData.getEncrypted(encryptionKeys).then(successCallback); expect(successCallback).toHaveBeenCalled(); expect(jasmine.Ajax.requests.count()).toBe(1); expect(jasmine.Ajax.requests.at(0).url).toBe('/go/api/internal/data_sharing/usagedata/encrypted'); expect(jasmine.Ajax.requests.at(0).method).toBe('POST'); const dataFromRequest: EncryptionKeys = JSON.parse(JSON.stringify(jasmine.Ajax.requests.at(0).data())); expect(dataFromRequest).toEqual(encryptionKeys); });
jasmine.Ajax.withMock(() => { jasmine.Ajax.stubRequest(dataSharingUsageDataURL).andReturn({ responseText: JSON.stringify(dataSharingUsageJSON), status: 200, responseHeaders: { 'Content-Type': 'application/vnd.go.cd.v2+json' } }); const successCallback = jasmine.createSpy().and.callFake((usageData: any) => { expect(usageData.represent()).toBe(JSON.stringify(dataSharingUsageJSON, null, 4)); }); UsageData.get().then(successCallback); expect(successCallback).toHaveBeenCalled(); });
it('should represent pretty formatted data', () => { const usageData = UsageData.fromJSON(dataSharingUsageJSON); expect(usageData.represent()).toBe(JSON.stringify(dataSharingUsageJSON, null, 4)); });
it('should deserialize data sharing usage data from JSON', () => { const usageData = UsageData.fromJSON(dataSharingUsageJSON); expect(usageData.message()).toEqual(dataSharingUsageJSON); });