Added tests. Fixes #1364
This commit is contained in:
@@ -33,9 +33,8 @@ define(
|
||||
mockReject,
|
||||
mockUnsubscribe,
|
||||
telemetry,
|
||||
mockAPI,
|
||||
legacyTelemetryProvider;
|
||||
|
||||
mockTelemetryAPI,
|
||||
mockAPI;
|
||||
|
||||
function mockPromise(value) {
|
||||
return {
|
||||
@@ -45,6 +44,9 @@ define(
|
||||
};
|
||||
}
|
||||
|
||||
function noop() {
|
||||
}
|
||||
|
||||
beforeEach(function () {
|
||||
mockInjector = jasmine.createSpyObj("$injector", ["get"]);
|
||||
mockQ = jasmine.createSpyObj("$q", ["when", "reject"]);
|
||||
@@ -81,22 +83,21 @@ define(
|
||||
// Bubble up...
|
||||
mockReject.then.andReturn(mockReject);
|
||||
|
||||
legacyTelemetryProvider = {};
|
||||
mockTelemetryAPI = jasmine.createSpyObj("telemetryAPI", [
|
||||
"getMetadata",
|
||||
"subscribe",
|
||||
"request",
|
||||
"findRequestProvider",
|
||||
"findSubscriptionProvider"
|
||||
]);
|
||||
mockTelemetryAPI.getMetadata.andReturn({
|
||||
valuesForHints: function () {
|
||||
return [];
|
||||
}
|
||||
});
|
||||
|
||||
mockAPI = {
|
||||
telemetry: {
|
||||
getMetadata: function () {
|
||||
return {
|
||||
valuesForHints: function () {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
},
|
||||
findRequestProvider: function () {
|
||||
return legacyTelemetryProvider;
|
||||
},
|
||||
legacyProvider: legacyTelemetryProvider
|
||||
}
|
||||
telemetry: mockTelemetryAPI
|
||||
};
|
||||
|
||||
telemetry = new TelemetryCapability(
|
||||
@@ -134,7 +135,6 @@ define(
|
||||
key: "testKey", // from model
|
||||
start: 42 // from argument
|
||||
}]);
|
||||
|
||||
});
|
||||
|
||||
it("provides an empty series when telemetry is missing", function () {
|
||||
@@ -182,6 +182,57 @@ define(
|
||||
expect(mockLog.warn).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("if a new style telemetry source is available, use it", function () {
|
||||
var mockProvider = {};
|
||||
mockTelemetryAPI.findSubscriptionProvider.andReturn(mockProvider);
|
||||
telemetry.subscribe(noop, {});
|
||||
expect(mockTelemetryService.subscribe).not.toHaveBeenCalled();
|
||||
expect(mockTelemetryAPI.subscribe).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("if a new style telemetry source is not available, revert to old API", function () {
|
||||
mockTelemetryAPI.findSubscriptionProvider.andReturn(undefined);
|
||||
telemetry.subscribe(noop, {});
|
||||
expect(mockTelemetryAPI.subscribe).not.toHaveBeenCalled();
|
||||
expect(mockTelemetryService.subscribe).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("Wraps telemetry returned from the new API as a telemetry series", function () {
|
||||
var returnedTelemetry;
|
||||
var mockTelemetry = [{
|
||||
prop1: "val1",
|
||||
prop2: "val2",
|
||||
prop3: "val3"
|
||||
},
|
||||
{
|
||||
prop1: "val4",
|
||||
prop2: "val5",
|
||||
prop3: "val6"
|
||||
}];
|
||||
var mockProvider = {};
|
||||
var dunzo = false;
|
||||
|
||||
mockTelemetryAPI.findRequestProvider.andReturn(mockProvider);
|
||||
mockTelemetryAPI.request.andReturn(Promise.resolve(mockTelemetry));
|
||||
|
||||
telemetry.requestData({}).then(function (data) {
|
||||
returnedTelemetry = data;
|
||||
dunzo = true;
|
||||
});
|
||||
|
||||
waitsFor(function () {
|
||||
return dunzo;
|
||||
});
|
||||
|
||||
runs(function () {
|
||||
expect(returnedTelemetry.getPointCount).toBeDefined();
|
||||
expect(returnedTelemetry.getDomainValue).toBeDefined();
|
||||
expect(returnedTelemetry.getRangeValue).toBeDefined();
|
||||
expect(returnedTelemetry.getPointCount()).toBe(2);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it("allows subscriptions to updates", function () {
|
||||
var mockCallback = jasmine.createSpy("callback"),
|
||||
subscription = telemetry.subscribe(mockCallback);
|
||||
|
||||
Reference in New Issue
Block a user