mirror of
https://github.com/nasa/openmct.git
synced 2025-06-15 21:58:13 +00:00
Added tests. Fixes #1364
This commit is contained in:
@ -74,7 +74,7 @@ define([
|
|||||||
openmct.legacyExtension(type, extension)
|
openmct.legacyExtension(type, extension)
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
openmct.types.register("generator", {
|
openmct.types.addType("generator", {
|
||||||
label: "Sine Wave Generator",
|
label: "Sine Wave Generator",
|
||||||
description: "For development use. Generates example streaming telemetry data using a simple sine wave algorithm.",
|
description: "For development use. Generates example streaming telemetry data using a simple sine wave algorithm.",
|
||||||
cssClass: "icon-telemetry",
|
cssClass: "icon-telemetry",
|
||||||
|
@ -31,14 +31,14 @@
|
|||||||
require(['openmct'], function (openmct) {
|
require(['openmct'], function (openmct) {
|
||||||
[
|
[
|
||||||
'example/imagery',
|
'example/imagery',
|
||||||
'example/eventGenerator',
|
'example/eventGenerator'
|
||||||
'example/generator'
|
|
||||||
].forEach(
|
].forEach(
|
||||||
openmct.legacyRegistry.enable.bind(openmct.legacyRegistry)
|
openmct.legacyRegistry.enable.bind(openmct.legacyRegistry)
|
||||||
);
|
);
|
||||||
openmct.install(openmct.plugins.myItems);
|
openmct.install(openmct.plugins.myItems);
|
||||||
openmct.install(openmct.plugins.localStorage);
|
openmct.install(openmct.plugins.localStorage);
|
||||||
openmct.install(openmct.plugins.espresso);
|
openmct.install(openmct.plugins.espresso);
|
||||||
|
openmct.install(openmct.plugins.Generator());
|
||||||
openmct.start();
|
openmct.start();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -118,7 +118,7 @@ define(
|
|||||||
formModel = this.createModel(formValue);
|
formModel = this.createModel(formValue);
|
||||||
|
|
||||||
formModel.location = parent.getId();
|
formModel.location = parent.getId();
|
||||||
this.domainObject.useCapability("mutation", function (model) {
|
this.domainObject.useCapability("mutation", function () {
|
||||||
return formModel;
|
return formModel;
|
||||||
});
|
});
|
||||||
return this.domainObject;
|
return this.domainObject;
|
||||||
|
@ -215,7 +215,6 @@ define(
|
|||||||
return telemetryService.requestTelemetry([fullRequest]);
|
return telemetryService.requestTelemetry([fullRequest]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Adapt request / options?
|
|
||||||
if (isLegacyProvider) {
|
if (isLegacyProvider) {
|
||||||
// If a telemetryService is not available,
|
// If a telemetryService is not available,
|
||||||
// getTelemetryService() should reject, and this should
|
// getTelemetryService() should reject, and this should
|
||||||
@ -263,7 +262,7 @@ define(
|
|||||||
var defaultDomain = (metadata.valuesForHints(['domain'])[0] || {}).key;
|
var defaultDomain = (metadata.valuesForHints(['domain'])[0] || {}).key;
|
||||||
var defaultRange = (metadata.valuesForHints(['range'])[0] || {}).key;
|
var defaultRange = (metadata.valuesForHints(['range'])[0] || {}).key;
|
||||||
|
|
||||||
var isLegacyProvider = telemetryAPI.findRequestProvider(domainObject) ===
|
var isLegacyProvider = telemetryAPI.findSubscriptionProvider(domainObject) ===
|
||||||
telemetryAPI.legacyProvider;
|
telemetryAPI.legacyProvider;
|
||||||
|
|
||||||
function update(telemetry) {
|
function update(telemetry) {
|
||||||
|
@ -33,9 +33,8 @@ define(
|
|||||||
mockReject,
|
mockReject,
|
||||||
mockUnsubscribe,
|
mockUnsubscribe,
|
||||||
telemetry,
|
telemetry,
|
||||||
mockAPI,
|
mockTelemetryAPI,
|
||||||
legacyTelemetryProvider;
|
mockAPI;
|
||||||
|
|
||||||
|
|
||||||
function mockPromise(value) {
|
function mockPromise(value) {
|
||||||
return {
|
return {
|
||||||
@ -45,6 +44,9 @@ define(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function noop() {
|
||||||
|
}
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
mockInjector = jasmine.createSpyObj("$injector", ["get"]);
|
mockInjector = jasmine.createSpyObj("$injector", ["get"]);
|
||||||
mockQ = jasmine.createSpyObj("$q", ["when", "reject"]);
|
mockQ = jasmine.createSpyObj("$q", ["when", "reject"]);
|
||||||
@ -81,22 +83,21 @@ define(
|
|||||||
// Bubble up...
|
// Bubble up...
|
||||||
mockReject.then.andReturn(mockReject);
|
mockReject.then.andReturn(mockReject);
|
||||||
|
|
||||||
legacyTelemetryProvider = {};
|
mockTelemetryAPI = jasmine.createSpyObj("telemetryAPI", [
|
||||||
|
"getMetadata",
|
||||||
|
"subscribe",
|
||||||
|
"request",
|
||||||
|
"findRequestProvider",
|
||||||
|
"findSubscriptionProvider"
|
||||||
|
]);
|
||||||
|
mockTelemetryAPI.getMetadata.andReturn({
|
||||||
|
valuesForHints: function () {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
mockAPI = {
|
mockAPI = {
|
||||||
telemetry: {
|
telemetry: mockTelemetryAPI
|
||||||
getMetadata: function () {
|
|
||||||
return {
|
|
||||||
valuesForHints: function () {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
findRequestProvider: function () {
|
|
||||||
return legacyTelemetryProvider;
|
|
||||||
},
|
|
||||||
legacyProvider: legacyTelemetryProvider
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
telemetry = new TelemetryCapability(
|
telemetry = new TelemetryCapability(
|
||||||
@ -134,7 +135,6 @@ define(
|
|||||||
key: "testKey", // from model
|
key: "testKey", // from model
|
||||||
start: 42 // from argument
|
start: 42 // from argument
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("provides an empty series when telemetry is missing", function () {
|
it("provides an empty series when telemetry is missing", function () {
|
||||||
@ -182,6 +182,57 @@ define(
|
|||||||
expect(mockLog.warn).toHaveBeenCalled();
|
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 () {
|
it("allows subscriptions to updates", function () {
|
||||||
var mockCallback = jasmine.createSpy("callback"),
|
var mockCallback = jasmine.createSpy("callback"),
|
||||||
subscription = telemetry.subscribe(mockCallback);
|
subscription = telemetry.subscribe(mockCallback);
|
||||||
|
Reference in New Issue
Block a user