diff --git a/src/api/telemetry/TelemetryCollection.js b/src/api/telemetry/TelemetryCollection.js index e757582370..ec2406a169 100644 --- a/src/api/telemetry/TelemetryCollection.js +++ b/src/api/telemetry/TelemetryCollection.js @@ -562,10 +562,8 @@ export default class TelemetryCollection extends EventEmitter { /** * Reset the telemetry data of the collection, and re-request - * historical telemetry + * historical telemetry and re-initiate subscriptions * @private - * - * @todo handle subscriptions more granually */ _reset() { this.boundedTelemetry = []; @@ -573,6 +571,7 @@ export default class TelemetryCollection extends EventEmitter { this.emit('clear'); this._requestHistoricalTelemetry(); + this._initiateSubscriptionTelemetry(); } /** diff --git a/src/api/telemetry/TelemetryCollectionSpec.js b/src/api/telemetry/TelemetryCollectionSpec.js index 95ae11d037..8e9578dc1f 100644 --- a/src/api/telemetry/TelemetryCollectionSpec.js +++ b/src/api/telemetry/TelemetryCollectionSpec.js @@ -96,4 +96,25 @@ describe('Telemetry Collection', () => { expect(telemetryCollection._warn).not.toHaveBeenCalled(); }); + + it('Re-initiates subscription telemetry when _reset is called', () => { + mockMetadata.values = [ + { + key: 'utc', + name: 'Timestamp', + format: 'utc', + hints: { + domain: 1 + } + } + ]; + + const telemetryCollection = openmct.telemetry.requestCollection(domainObject); + telemetryCollection.load(); + + spyOn(telemetryCollection, '_initiateSubscriptionTelemetry'); + telemetryCollection._reset(); + + expect(telemetryCollection._initiateSubscriptionTelemetry).toHaveBeenCalled(); + }); });