diff --git a/platform/telemetry/src/TelemetrySubscription.js b/platform/telemetry/src/TelemetrySubscription.js index 69fd957ac2..808d8c5c5d 100644 --- a/platform/telemetry/src/TelemetrySubscription.js +++ b/platform/telemetry/src/TelemetrySubscription.js @@ -191,7 +191,8 @@ define( } function addMutationListener() { - var mutation = domainObject.getCapability('mutation'); + var mutation = domainObject && + domainObject.getCapability('mutation'); if (mutation) { return mutation.listen(modelChange); } diff --git a/platform/telemetry/test/TelemetrySubscriptionSpec.js b/platform/telemetry/test/TelemetrySubscriptionSpec.js index 458a2f685e..e1c834e6cd 100644 --- a/platform/telemetry/test/TelemetrySubscriptionSpec.js +++ b/platform/telemetry/test/TelemetrySubscriptionSpec.js @@ -32,6 +32,7 @@ define( mockDomainObject, mockCallback, mockTelemetry, + mockMutation, mockUnsubscribe, mockSeries, testMetadata, @@ -59,6 +60,10 @@ define( "telemetry", ["subscribe", "getMetadata"] ); + mockMutation = jasmine.createSpyObj( + "mutation", + ["mutate", "listen"] + ); mockUnsubscribe = jasmine.createSpy("unsubscribe"); mockSeries = jasmine.createSpyObj( "series", @@ -68,7 +73,12 @@ define( mockQ.when.andCallFake(mockPromise); mockDomainObject.hasCapability.andReturn(true); - mockDomainObject.getCapability.andReturn(mockTelemetry); + mockDomainObject.getCapability.andCallFake(function (c) { + return { + telemetry: mockTelemetry, + mutation: mockMutation + }[c]; + }); mockDomainObject.getId.andReturn('test-id'); mockTelemetry.subscribe.andReturn(mockUnsubscribe); @@ -215,4 +225,4 @@ define( }); }); } -); \ No newline at end of file +);