[Events] Column tests working

Tests for the domain and range columns now work
for the real time event list. #26.
This commit is contained in:
Sarah Hale 2015-06-26 14:23:41 -07:00
parent 750d3f473e
commit 95f9d783d3
5 changed files with 83 additions and 54 deletions

View File

@ -32,44 +32,48 @@ define(
var TEST_DOMAIN_VALUE = "some formatted domain value";
describe("A real time event list domain column", function () {
var mockDataSet,
testMetadata,
var mockDomainObject,
mockTelemetryHandler,
mockHandle,
mockFormatter,
column;
beforeEach(function () {
mockDataSet = jasmine.createSpyObj(
"data",
[ "getDomainValue" ]
mockDomainObject = jasmine.createSpyObj(
"domainObject",
["getModel", "getCapability"]
);
mockTelemetryHandler = jasmine.createSpyObj(
"telemetryHandler",
["handle"]
);
mockHandle = jasmine.createSpyObj(
"handle",
["getDomainValue", "getRangeValue"]
);
mockFormatter = jasmine.createSpyObj(
"formatter",
[ "formatDomainValue", "formatRangeValue" ]
["formatDomainValue", "formatRangeValue"]
);
testMetadata = {
key: "testKey",
name: "Test Name"
};
mockFormatter.formatDomainValue.andReturn(TEST_DOMAIN_VALUE);
column = new DomainColumn(testMetadata, mockFormatter);
column = new DomainColumn(mockFormatter);
});
it("reports a column header from domain metadata", function () {
expect(column.getTitle()).toEqual("Test Name");
it("reports the domain column header as 'Time'", function () {
expect(column.getTitle()).toEqual("Time");
});
it("looks up data from a data set", function () {
column.getValue(undefined, mockDataSet, 42);
expect(mockDataSet.getDomainValue)
.toHaveBeenCalledWith(42, "testKey");
it("retrives data from a telemetry provider", function () {
column.getValue(mockDomainObject, mockHandle);
expect(mockHandle.getDomainValue).toHaveBeenCalled();
});
it("formats domain values as time", function () {
mockDataSet.getDomainValue.andReturn(402513731000);
mockHandle.getDomainValue.andReturn(402513731000);
// Should have just given the value the formatter gave
expect(column.getValue(undefined, mockDataSet, 42))
expect(column.getValue(mockDomainObject, mockHandle).text)
.toEqual(TEST_DOMAIN_VALUE);
// Make sure that service interactions were as expected

View File

@ -32,8 +32,18 @@ define(
describe("The real time event list controller", function () {
var mockScope,
mockTelemetry,
mockTelemetryHandler,
mockHandle,
mockTelemetryFormatter,
testMetadata,
controller;
/*
var mockDomainObject,
mockTelemetryHandler,
mockHandle,
mockFormatter,
column;
*/
beforeEach(function () {
mockScope = jasmine.createSpyObj(
@ -44,6 +54,18 @@ define(
"telemetryController",
[ "getResponse", "getMetadata", "getTelemetryObjects" ]
);
mockTelemetryHandler = jasmine.createSpyObj(
"telemetryHandler",
["handle"]
);
mockHandle = jasmine.createSpyObj(
"handle",
["getDomainValue", "getRangeValue"]
);
mockTelemetryFormatter = jasmine.createSpyObj(
"formatter",
["formatDomainValue", "formatRangeValue"]
);
testMetadata = [
{
domains: [
@ -69,7 +91,7 @@ define(
mockTelemetry.getResponse.andReturn([]);
mockTelemetry.getTelemetryObjects.andReturn([]);
mockScope.telemetry = mockTelemetry;
controller = new RTEventListController(mockScope);
controller = new RTEventListController(mockScope, mockTelemetryHandler, mockTelemetryFormatter);
});
it("listens for telemetry data updates", function () {

View File

@ -32,49 +32,52 @@ define(
var TEST_RANGE_VALUE = "some formatted range value";
describe("A real time event list range column", function () {
var mockDataSet,
testMetadata,
var mockDomainObject,
mockTelemetryHandler,
mockHandle,
mockFormatter,
column;
beforeEach(function () {
mockDataSet = jasmine.createSpyObj(
"data",
[ "getRangeValue" ]
mockDomainObject = jasmine.createSpyObj(
"domainObject",
["getModel", "getCapability"]
);
mockTelemetryHandler = jasmine.createSpyObj(
"telemetryHandler",
["handle"]
);
mockHandle = jasmine.createSpyObj(
"handle",
["getDomainValue", "getRangeValue"]
);
mockFormatter = jasmine.createSpyObj(
"formatter",
[ "formatDomainValue", "formatRangeValue" ]
["formatDomainValue", "formatRangeValue"]
);
testMetadata = {
key: "testKey",
name: "Test Name"
};
mockFormatter.formatRangeValue.andReturn(TEST_RANGE_VALUE);
column = new RangeColumn(testMetadata, mockFormatter);
column = new RangeColumn();
});
it("reports a column header from range metadata", function () {
expect(column.getTitle()).toEqual("Test Name");
it("reports a range column header as 'Message'", function () {
expect(column.getTitle()).toEqual("Message");
});
it("looks up data from a data set", function () {
column.getValue(undefined, mockDataSet, 42);
expect(mockDataSet.getRangeValue)
.toHaveBeenCalledWith(42, "testKey");
it("retrives data from a telemetry provider", function () {
column.getValue(mockDomainObject, mockHandle);
expect(mockHandle.getRangeValue).toHaveBeenCalled();
});
it("formats range values as time", function () {
mockDataSet.getRangeValue.andReturn(123.45678);
expect(column.getValue(undefined, mockDataSet, 42))
.toEqual(TEST_RANGE_VALUE);
// Make sure that service interactions were as expected
expect(mockFormatter.formatRangeValue)
.toHaveBeenCalledWith(123.45678);
expect(mockFormatter.formatDomainValue)
.not.toHaveBeenCalled();
it("does not format range values", function () {
mockHandle.getRangeValue.andReturn(123.45678);
// Does not format range value as time
expect(column.getValue(mockDomainObject, mockHandle).text)
.not.toEqual(TEST_RANGE_VALUE);
// There should be no additional formatting
// i.e. the message string stays a string
expect(column.getValue(mockDomainObject, mockHandle).text)
.toEqual(123.45678);
});
});
}

View File

@ -1,6 +0,0 @@
[
"DomainColumn",
"RTEventListController",
"policies/RTMessagesViewPolicy",
"RangeColumn"
]

View File

@ -0,0 +1,6 @@
[
"DomainColumn",
"RangeColumn",
"RTEventListController",
"policies/RTMessagesViewPolicy"
]