From 0434928f55dc20ad75b93f4faa3fd25a863782b7 Mon Sep 17 00:00:00 2001 From: Pete Richards Date: Mon, 3 Apr 2017 09:46:41 -0700 Subject: [PATCH 1/3] [Table] parse/format with datum Use formatter to parse format datum such that source remapping is properly handled. --- platform/features/table/src/TableConfiguration.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/platform/features/table/src/TableConfiguration.js b/platform/features/table/src/TableConfiguration.js index a59ffa457f..500f3fb5e8 100644 --- a/platform/features/table/src/TableConfiguration.js +++ b/platform/features/table/src/TableConfiguration.js @@ -65,9 +65,8 @@ define( limitEvaluator && limitEvaluator.evaluate(telemetryDatum, metadatum); var value = { - text: formatter ? formatter.format(telemetryDatum[metadatum.key]) - : telemetryDatum[metadatum.key], - value: telemetryDatum[metadatum.key] + text: formatter.format(telemetryDatum), + value: formatter.parse(telemetryDatum) }; if (alarm) { From 5db03bb1bd0d172ce8ecb9d5935c61257d8db9f6 Mon Sep 17 00:00:00 2001 From: Pete Richards Date: Thu, 27 Apr 2017 11:15:05 -0700 Subject: [PATCH 2/3] [Spec] update formatter mock, remove smelly test Update the formatter mock to implement the expected methods, such that formatting occurs properly. Remove a test that was validating the execution of a method as this was smelly-- it's not the method that is important, it's the result (that couldn't be obtained without the method). --- .../table/test/TableConfigurationSpec.js | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/platform/features/table/test/TableConfigurationSpec.js b/platform/features/table/test/TableConfigurationSpec.js index 9538335a86..484973dc9d 100644 --- a/platform/features/table/test/TableConfigurationSpec.js +++ b/platform/features/table/test/TableConfigurationSpec.js @@ -30,7 +30,6 @@ define( var mockDomainObject, mockAPI, mockTelemetryAPI, - mockTelemetryFormatter, table, mockModel; @@ -48,21 +47,27 @@ define( }; }); - mockTelemetryFormatter = jasmine.createSpyObj('telemetryFormatter', - [ - 'format' - ]); - mockTelemetryFormatter.format.andCallFake(function (valueIn) { - return valueIn; - }); - mockTelemetryAPI = jasmine.createSpyObj('telemetryAPI', [ 'getValueFormatter' ]); mockAPI = { telemetry: mockTelemetryAPI }; - mockTelemetryAPI.getValueFormatter.andReturn(mockTelemetryFormatter); + mockTelemetryAPI.getValueFormatter.andCallFake(function (metadata) { + var formatter = jasmine.createSpyObj( + 'telemetryFormatter:' + metadata.key, + [ + 'format', + 'parse' + ] + ); + var getter = function (datum) { + return datum[metadata.key]; + }; + formatter.format.andCallFake(getter); + formatter.parse.andCallFake(getter); + return formatter; + }); table = new Table(mockDomainObject, mockAPI); }); @@ -176,10 +181,6 @@ define( expect(rowValues['Range 1'].cssClass).toEqual("alarm-class"); }); - it("Uses telemetry formatter to appropriately format" + - " telemetry values", function () { - expect(mockTelemetryFormatter.format).toHaveBeenCalled(); - }); }); }); }); From 2b41321c03a104d2bd404953f27947e869c2875f Mon Sep 17 00:00:00 2001 From: Pete Richards Date: Thu, 27 Apr 2017 11:20:25 -0700 Subject: [PATCH 3/3] [Spec] Update API mock Update telemetry api mock to return proper value formatters. --- .../controllers/TelemetryTableControllerSpec.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/platform/features/table/test/controllers/TelemetryTableControllerSpec.js b/platform/features/table/test/controllers/TelemetryTableControllerSpec.js index f89f9dcec7..205947dd67 100644 --- a/platform/features/table/test/controllers/TelemetryTableControllerSpec.js +++ b/platform/features/table/test/controllers/TelemetryTableControllerSpec.js @@ -101,7 +101,21 @@ define( ]); mockTelemetryAPI.commonValuesForHints.andReturn([]); mockTelemetryAPI.request.andReturn(Promise.resolve([])); - + mockTelemetryAPI.getValueFormatter.andCallFake(function (metadata) { + var formatter = jasmine.createSpyObj( + 'telemetryFormatter:' + metadata.key, + [ + 'format', + 'parse' + ] + ); + var getter = function (datum) { + return datum[metadata.key]; + }; + formatter.format.andCallFake(getter); + formatter.parse.andCallFake(getter); + return formatter; + }); mockTelemetryAPI.canProvideTelemetry.andReturn(false);