[Telemetry] Update specs

Update telemetry bundle specs to account for subscription
functionality added to support autoflow tabular views,
WTD-614.
This commit is contained in:
Victor Woeltjen
2014-12-30 14:00:20 -08:00
parent cc5cfd95a7
commit 8dd255a06e
3 changed files with 70 additions and 4 deletions

View File

@@ -12,6 +12,7 @@ define(
mockDomainObject,
mockTelemetryService,
mockReject,
mockUnsubscribe,
telemetry;
@@ -33,9 +34,10 @@ define(
);
mockTelemetryService = jasmine.createSpyObj(
"telemetryService",
[ "requestTelemetry" ]
[ "requestTelemetry", "subscribe" ]
);
mockReject = jasmine.createSpyObj("reject", ["then"]);
mockUnsubscribe = jasmine.createSpy("unsubscribe");
mockInjector.get.andReturn(mockTelemetryService);
@@ -52,6 +54,8 @@ define(
mockTelemetryService.requestTelemetry
.andReturn(mockPromise({}));
mockTelemetryService.subscribe
.andReturn(mockUnsubscribe);
// Bubble up...
mockReject.then.andReturn(mockReject);
@@ -127,6 +131,36 @@ define(
expect(mockLog.warn).toHaveBeenCalled();
});
it("allows subscriptions to updates", function () {
var mockCallback = jasmine.createSpy("callback"),
subscription = telemetry.subscribe(mockCallback);
// Verify subscription to the appropriate object
expect(mockTelemetryService.subscribe).toHaveBeenCalledWith(
jasmine.any(Function),
[{
id: "testId", // from domain object
source: "testSource",
key: "testKey"
}]
);
// Check that the callback gets invoked
expect(mockCallback).not.toHaveBeenCalled();
mockTelemetryService.subscribe.mostRecentCall.args[0]({
testSource: { testKey: { someKey: "some value" } }
});
expect(mockCallback).toHaveBeenCalledWith(
{ someKey: "some value" }
);
// Finally, unsubscribe
expect(mockUnsubscribe).not.toHaveBeenCalled();
subscription(); // should be an unsubscribe function
expect(mockUnsubscribe).toHaveBeenCalled();
});
});
}
);