2 describe('Extenders', {
3 'Should be able to extend any subscribable': function () {
4 ko.extenders.setDummyProperty = function(target, value) {
5 target.dummyProperty = value;
8 var subscribable = new ko.subscribable();
9 value_of(subscribable.dummyProperty).should_be(undefined);
11 subscribable.extend({ setDummyProperty : 123 });
12 value_of(subscribable.dummyProperty).should_be(123);
15 'Should be able to chain extenders': function() {
16 ko.extenders.wrapInParentObject = function(target, value) {
17 return { inner : target, extend : target.extend }
19 var underlyingSubscribable = new ko.subscribable();
20 var result = underlyingSubscribable.extend({ wrapInParentObject:true }).extend({ wrapInParentObject:true });
21 value_of(result.inner.inner).should_be(underlyingSubscribable);