diff --git a/platform/commonUI/edit/test/objects/EditableDomainObjectCacheSpec.js b/platform/commonUI/edit/test/objects/EditableDomainObjectCacheSpec.js index 001b5a4ad1..1c0d372119 100644 --- a/platform/commonUI/edit/test/objects/EditableDomainObjectCacheSpec.js +++ b/platform/commonUI/edit/test/objects/EditableDomainObjectCacheSpec.js @@ -21,6 +21,9 @@ define( getModel: function () { return {}; }, getCapability: function (name) { return completionCapability; + }, + hasCapability: function (name) { + return false; } }; } @@ -29,6 +32,9 @@ define( var result = Object.create(domainObject); result.wrapped = true; result.wrappedModel = model; + result.hasCapability = function (name) { + return name === 'editor'; + }; captured.wraps = (captured.wraps || 0) + 1; return result; } @@ -112,6 +118,19 @@ define( expect(cache.isRoot(domainObjects[2])).toBeFalsy(); }); + it("does not double-wrap objects", function () { + var domainObject = new TestObject('test-id'), + wrappedObject = cache.getEditableObject(domainObject); + + // Same instance should be returned if you try to wrap + // twice. This is necessary, since it's possible to (e.g.) + // use a context capability on an object retrieved via + // composition, in which case a result will already be + // wrapped. + expect(cache.getEditableObject(wrappedObject)) + .toBe(wrappedObject); + }); + }); }