mirror of
https://github.com/nasa/openmct.git
synced 2025-06-01 23:20:50 +00:00
[Edit] Fixed issue with cancel action throwing an error. Fixes #979
This commit is contained in:
parent
dc577d4c24
commit
b1266abf01
@ -67,10 +67,17 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onCancel() {
|
function onCancel() {
|
||||||
return self.persistenceCapability.refresh().then(function (result) {
|
if (self.domainObject.getModel().persisted) {
|
||||||
|
//Fetch clean model from persistence
|
||||||
|
return self.persistenceCapability.refresh().then(function (result) {
|
||||||
|
self.persistPending = false;
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
self.persistPending = false;
|
self.persistPending = false;
|
||||||
return result;
|
//Model is undefined in persistence, so return undefined.
|
||||||
});
|
return self.$q.when(undefined);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.transactionService.isActive()) {
|
if (this.transactionService.isActive()) {
|
||||||
|
@ -57,6 +57,15 @@ define(
|
|||||||
);
|
);
|
||||||
mockPersistence.persist.andReturn(fastPromise());
|
mockPersistence.persist.andReturn(fastPromise());
|
||||||
mockPersistence.refresh.andReturn(fastPromise());
|
mockPersistence.refresh.andReturn(fastPromise());
|
||||||
|
|
||||||
|
mockDomainObject = jasmine.createSpyObj(
|
||||||
|
"domainObject",
|
||||||
|
[
|
||||||
|
"getModel"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
mockDomainObject.getModel.andReturn({persisted: 1});
|
||||||
|
|
||||||
capability = new TransactionalPersistenceCapability(mockQ, mockTransactionService, mockPersistence, mockDomainObject);
|
capability = new TransactionalPersistenceCapability(mockQ, mockTransactionService, mockPersistence, mockDomainObject);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -78,6 +87,20 @@ define(
|
|||||||
expect(mockPersistence.refresh).toHaveBeenCalled();
|
expect(mockPersistence.refresh).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("if transaction is active, cancel call is queued that refreshes model when appropriate", function () {
|
||||||
|
mockTransactionService.isActive.andReturn(true);
|
||||||
|
capability.persist();
|
||||||
|
expect(mockTransactionService.addToTransaction).toHaveBeenCalled();
|
||||||
|
|
||||||
|
mockDomainObject.getModel.andReturn({});
|
||||||
|
mockTransactionService.addToTransaction.mostRecentCall.args[1]();
|
||||||
|
expect(mockPersistence.refresh).not.toHaveBeenCalled();
|
||||||
|
|
||||||
|
mockDomainObject.getModel.andReturn({persisted: 1});
|
||||||
|
mockTransactionService.addToTransaction.mostRecentCall.args[1]();
|
||||||
|
expect(mockPersistence.refresh).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
it("persist call is only added to transaction once", function () {
|
it("persist call is only added to transaction once", function () {
|
||||||
mockTransactionService.isActive.andReturn(true);
|
mockTransactionService.isActive.andReturn(true);
|
||||||
capability.persist();
|
capability.persist();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user