mirror of
https://github.com/nasa/openmct.git
synced 2024-12-23 06:52:24 +00:00
acf4261a08
Add specs for data structures which will support resolution of WTD-784 by retaining all data not yet received by callbacks (instead of just the very latest) such that plots can ensure they do not miss streaming data.
55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
|
|
define(
|
|
["../src/TelemetryQueue"],
|
|
function (TelemetryQueue) {
|
|
"use strict";
|
|
|
|
describe("The telemetry queue", function () {
|
|
var queue;
|
|
|
|
beforeEach(function () {
|
|
// put, isEmpty, dequeue
|
|
queue = new TelemetryQueue();
|
|
});
|
|
|
|
it("stores elements by key", function () {
|
|
queue.put("a", { someKey: "some value" });
|
|
expect(queue.poll())
|
|
.toEqual({ a: { someKey: "some value" }});
|
|
});
|
|
|
|
it("merges non-overlapping keys", function () {
|
|
queue.put("a", { someKey: "some value" });
|
|
queue.put("b", 42);
|
|
expect(queue.poll())
|
|
.toEqual({ a: { someKey: "some value" }, b: 42 });
|
|
});
|
|
|
|
it("adds new objects for repeated keys", function () {
|
|
queue.put("a", { someKey: "some value" });
|
|
queue.put("a", { someKey: "some other value" });
|
|
queue.put("b", 42);
|
|
expect(queue.poll())
|
|
.toEqual({ a: { someKey: "some value" }, b: 42 });
|
|
expect(queue.poll())
|
|
.toEqual({ a: { someKey: "some other value" } });
|
|
});
|
|
|
|
it("reports emptiness", function () {
|
|
expect(queue.isEmpty()).toBeTruthy();
|
|
queue.put("a", { someKey: "some value" });
|
|
queue.put("a", { someKey: "some other value" });
|
|
queue.put("b", 42);
|
|
expect(queue.isEmpty()).toBeFalsy();
|
|
queue.poll();
|
|
expect(queue.isEmpty()).toBeFalsy();
|
|
queue.poll();
|
|
expect(queue.isEmpty()).toBeTruthy();
|
|
});
|
|
|
|
|
|
});
|
|
|
|
}
|
|
); |