diff --git a/platform/features/conductor/src/ConductorCapabilityDecorator.js b/platform/features/conductor/src/ConductorCapabilityDecorator.js index 2ad5982e34..ad4115d48c 100644 --- a/platform/features/conductor/src/ConductorCapabilityDecorator.js +++ b/platform/features/conductor/src/ConductorCapabilityDecorator.js @@ -40,8 +40,7 @@ define( capabilities.telemetry = function (domainObject) { return new ConductorCapabilityDecorator( conductorService.getConductor(), - new TelemetryCapability(domainObject), - domainObject + new TelemetryCapability(domainObject) ); }; } diff --git a/platform/features/conductor/src/ConductorTelemetryCapability.js b/platform/features/conductor/src/ConductorTelemetryCapability.js index f1269a36e7..02950ac8f2 100644 --- a/platform/features/conductor/src/ConductorTelemetryCapability.js +++ b/platform/features/conductor/src/ConductorTelemetryCapability.js @@ -26,7 +26,8 @@ define( function () { 'use strict'; - function ConductorTelemetryCapability(timeConductor, telemetryCapability, domainObject) { + function ConductorTelemetryCapability(timeConductor, telemetryCapability) { + this.timeConductor = timeConductor; this.wrappedCapability = telemetryCapability; } @@ -42,9 +43,6 @@ define( }; ConductorTelemetryCapability.prototype.subscribe = function (callback, request) { - request = request || {}; - request.start = this.timeConductor.queryStart(); - request.end = this.timeConductor.queryEnd(); return this.wrappedCapability.subscribe(callback, request); }; diff --git a/platform/features/conductor/test/ConductorTelemetryCapabilitySpec.js b/platform/features/conductor/test/ConductorTelemetryCapabilitySpec.js index cdcee1b39a..e5c9066e22 100644 --- a/platform/features/conductor/test/ConductorTelemetryCapabilitySpec.js +++ b/platform/features/conductor/test/ConductorTelemetryCapabilitySpec.js @@ -30,6 +30,71 @@ define( "use strict"; describe("ConductorTelemetryCapability", function () { + var mockConductor, + mockTelemetryCapability, + mockUnsubscribe, + testMetadata, + testStartTime, + testEndTime, + conductorTelemetryCapability; + + beforeEach(function () { + mockConductor = jasmine.createSpyObj( + 'timeConductor', + [ + 'queryStart', + 'queryEnd', + 'displayStart', + 'displayEnd' + ] + ); + mockTelemetryCapability = jasmine.createSpyObj( + 'telemetry', + [ 'getMetadata', 'requestData', 'subscribe' ] + ); + mockUnsubscribe = jasmine.createSpy('unsubscribe'); + + testStartTime = 42; + testEndTime = 12321; + testMetadata = { someKey: 'some value' }; + mockTelemetryCapability.getMetadata.andReturn(testMetadata); + mockTelemetryCapability.subscribe.andReturn(mockUnsubscribe); + mockConductor.queryStart.andReturn(testStartTime); + mockConductor.queryEnd.andReturn(testEndTime); + + conductorTelemetryCapability = new ConductorTelemetryCapability( + mockConductor, + mockTelemetryCapability + ); + }); + + it("simply delegates getMetadata calls", function () { + expect(conductorTelemetryCapability.getMetadata()) + .toBe(testMetadata); + }); + + it("adds start/end times to requests", function () { + conductorTelemetryCapability + .requestData({ someKey: "some value" }); + expect(mockTelemetryCapability.requestData).toHaveBeenCalledWith({ + someKey: "some value", + start: testStartTime, + end: testEndTime + }); + }); + + it("simply delegates subscribe calls", function () { + var mockCallback = jasmine.createSpy('callback'), + testRequest = { someKey: "some value" }; + expect(conductorTelemetryCapability.subscribe( + mockCallback, + testRequest + )).toBe(mockUnsubscribe); + expect(mockTelemetryCapability.subscribe).toHaveBeenCalledWith( + mockCallback, + { someKey: "some value" } + ); + }); }); }