[Telemetry] Add data structure specs
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.
This commit is contained in:
53
platform/telemetry/test/TelemetryTableSpec.js
Normal file
53
platform/telemetry/test/TelemetryTableSpec.js
Normal file
@@ -0,0 +1,53 @@
|
||||
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
||||
|
||||
define(
|
||||
["../src/TelemetryTable"],
|
||||
function (TelemetryTable) {
|
||||
"use strict";
|
||||
|
||||
describe("The telemetry table", function () {
|
||||
var queue;
|
||||
|
||||
beforeEach(function () {
|
||||
// put, isEmpty, dequeue
|
||||
queue = new TelemetryTable();
|
||||
});
|
||||
|
||||
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("overwrites 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 other value" }, b: 42 });
|
||||
expect(queue.poll())
|
||||
.toBeUndefined();
|
||||
});
|
||||
|
||||
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()).toBeTruthy();
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user