openmct/platform/telemetry/test/TelemetrySubscriberSpec.js
Victor Woeltjen 0082b99292 [Telemetry] Fill in new specs
Complete test coverage for new scripts added to bundle
platform/telemetry in support of autoflow tabular views,
WTD-614. Specifically, these implement a telemetrySubscriber
service which can be used to watch for updates to telemetry
values associated with a specific domain object.
2014-12-31 13:39:55 -08:00

54 lines
1.9 KiB
JavaScript

/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
define(
["../src/TelemetrySubscriber"],
function (TelemetrySubscriber) {
"use strict";
describe("The telemetry subscriber", function () {
// TelemetrySubscriber just provides a factory
// for TelemetrySubscription, so most real testing
// should happen there.
var mockQ,
mockTimeout,
mockDomainObject,
mockCallback,
mockPromise,
subscriber;
beforeEach(function () {
mockQ = jasmine.createSpyObj("$q", ["when"]);
mockTimeout = jasmine.createSpy("$timeout");
mockDomainObject = jasmine.createSpyObj(
"domainObject",
[ "getCapability", "useCapability", "hasCapability" ]
);
mockCallback = jasmine.createSpy("callback");
mockPromise = jasmine.createSpyObj("promise", ["then"]);
mockQ.when.andReturn(mockPromise);
mockPromise.then.andReturn(mockPromise);
subscriber = new TelemetrySubscriber(mockQ, mockTimeout);
});
it("acts as a factory for subscription objects", function () {
var subscription = subscriber.subscribe(
mockDomainObject,
mockCallback
);
// Just verify that this looks like a TelemetrySubscription
[
"unsubscribe",
"getTelemetryObjects",
"getRangeValue",
"getDomainValue"
].forEach(function (method) {
expect(subscription[method])
.toEqual(jasmine.any(Function));
});
});
});
}
);