mirror of
https://github.com/nasa/openmct.git
synced 2025-06-06 09:21:43 +00:00
Merge pull request #3205 from nasa/data-dropout-fixes
### Reviewer Checklist 1. Changes appear to address issue? Y 2. Appropriate unit tests included? Y 3. Code style and in-line documentation are appropriate? Y 4. Commit messages meet standards? Y 5. Has associated issue been labelled `unverified`? (only applicable if this PR closes the issue) Y
This commit is contained in:
commit
41138a1731
@ -334,8 +334,8 @@ define([
|
|||||||
});
|
});
|
||||||
if (subscriber.callbacks.length === 0) {
|
if (subscriber.callbacks.length === 0) {
|
||||||
subscriber.unsubscribe();
|
subscriber.unsubscribe();
|
||||||
|
delete this.subscribeCache[keyString];
|
||||||
}
|
}
|
||||||
delete this.subscribeCache[keyString];
|
|
||||||
}.bind(this);
|
}.bind(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -156,6 +156,29 @@ define([
|
|||||||
expect(callbacktwo).not.toHaveBeenCalledWith('anotherValue');
|
expect(callbacktwo).not.toHaveBeenCalledWith('anotherValue');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('only deletes subscription cache when there are no more subscribers', function () {
|
||||||
|
var unsubFunc = jasmine.createSpy('unsubscribe');
|
||||||
|
telemetryProvider.subscribe.and.returnValue(unsubFunc);
|
||||||
|
telemetryProvider.supportsSubscribe.and.returnValue(true);
|
||||||
|
telemetryAPI.addProvider(telemetryProvider);
|
||||||
|
|
||||||
|
var callback = jasmine.createSpy('callback');
|
||||||
|
var callbacktwo = jasmine.createSpy('callback two');
|
||||||
|
var callbackThree = jasmine.createSpy('callback three');
|
||||||
|
var unsubscribe = telemetryAPI.subscribe(domainObject, callback);
|
||||||
|
var unsubscribeTwo = telemetryAPI.subscribe(domainObject, callbacktwo);
|
||||||
|
|
||||||
|
expect(telemetryProvider.subscribe.calls.count()).toBe(1);
|
||||||
|
unsubscribe();
|
||||||
|
var unsubscribeThree = telemetryAPI.subscribe(domainObject, callbackThree);
|
||||||
|
// Regression test for where subscription cache was deleted on each unsubscribe, resulting in
|
||||||
|
// superfluous additional subscriptions. If the subscription cache is being deleted on each unsubscribe,
|
||||||
|
// then a subsequent subscribe will result in a new subscription at the provider.
|
||||||
|
expect(telemetryProvider.subscribe.calls.count()).toBe(1);
|
||||||
|
unsubscribeTwo();
|
||||||
|
unsubscribeThree();
|
||||||
|
});
|
||||||
|
|
||||||
it('does subscribe/unsubscribe', function () {
|
it('does subscribe/unsubscribe', function () {
|
||||||
var unsubFunc = jasmine.createSpy('unsubscribe');
|
var unsubFunc = jasmine.createSpy('unsubscribe');
|
||||||
telemetryProvider.subscribe.and.returnValue(unsubFunc);
|
telemetryProvider.subscribe.and.returnValue(unsubFunc);
|
||||||
|
@ -46,6 +46,7 @@ export default class StyleRuleManager extends EventEmitter {
|
|||||||
if (this.isEditing) {
|
if (this.isEditing) {
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
if (this.conditionSetIdentifier) {
|
if (this.conditionSetIdentifier) {
|
||||||
this.applySelectedConditionStyle();
|
this.applySelectedConditionStyle();
|
||||||
@ -66,6 +67,7 @@ export default class StyleRuleManager extends EventEmitter {
|
|||||||
subscribeToConditionSet() {
|
subscribeToConditionSet() {
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
this.openmct.objects.get(this.conditionSetIdentifier).then((conditionSetDomainObject) => {
|
this.openmct.objects.get(this.conditionSetIdentifier).then((conditionSetDomainObject) => {
|
||||||
this.openmct.telemetry.request(conditionSetDomainObject)
|
this.openmct.telemetry.request(conditionSetDomainObject)
|
||||||
@ -154,8 +156,8 @@ export default class StyleRuleManager extends EventEmitter {
|
|||||||
this.applyStaticStyle();
|
this.applyStaticStyle();
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
delete this.stopProvidingTelemetry;
|
|
||||||
this.conditionSetIdentifier = undefined;
|
this.conditionSetIdentifier = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,6 +197,7 @@ export default {
|
|||||||
}
|
}
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
initialize(conditionSetDomainObject) {
|
initialize(conditionSetDomainObject) {
|
||||||
@ -210,6 +211,7 @@ export default {
|
|||||||
if (this.isEditing) {
|
if (this.isEditing) {
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.subscribeToConditionSet();
|
this.subscribeToConditionSet();
|
||||||
@ -307,6 +309,7 @@ export default {
|
|||||||
this.persist(domainObjectStyles);
|
this.persist(domainObjectStyles);
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
updateDomainObjectItemStyles(newItems) {
|
updateDomainObjectItemStyles(newItems) {
|
||||||
@ -375,6 +378,7 @@ export default {
|
|||||||
subscribeToConditionSet() {
|
subscribeToConditionSet() {
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
if (this.conditionSetDomainObject) {
|
if (this.conditionSetDomainObject) {
|
||||||
this.openmct.telemetry.request(this.conditionSetDomainObject)
|
this.openmct.telemetry.request(this.conditionSetDomainObject)
|
||||||
|
@ -190,6 +190,7 @@ export default {
|
|||||||
if (this.isEditing) {
|
if (this.isEditing) {
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.subscribeToConditionSet();
|
this.subscribeToConditionSet();
|
||||||
@ -325,6 +326,7 @@ export default {
|
|||||||
|
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.unObserveObjects) {
|
if (this.unObserveObjects) {
|
||||||
@ -337,6 +339,7 @@ export default {
|
|||||||
subscribeToConditionSet() {
|
subscribeToConditionSet() {
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
if (this.conditionSetDomainObject) {
|
if (this.conditionSetDomainObject) {
|
||||||
this.openmct.telemetry.request(this.conditionSetDomainObject)
|
this.openmct.telemetry.request(this.conditionSetDomainObject)
|
||||||
@ -494,6 +497,7 @@ export default {
|
|||||||
|
|
||||||
if (this.stopProvidingTelemetry) {
|
if (this.stopProvidingTelemetry) {
|
||||||
this.stopProvidingTelemetry();
|
this.stopProvidingTelemetry();
|
||||||
|
delete this.stopProvidingTelemetry;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
removeConditionalStyles(domainObjectStyles, itemId) {
|
removeConditionalStyles(domainObjectStyles, itemId) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user