UNPKG

@danielkalen/simplybind

Version:

Magically simple, framework-less one-way/two-way data binding for frontend/backend in ~5kb.

57 lines (41 loc) 1.76 kB
suite "Unbinding", ()-> test "Binding single prop to multiple ObjectProps and then calling .unBind() should unbind all", ()-> dispatcher = 'prop':'value1' objectA.prop1 = objectB.prop1 = objectC.prop1 = null binding = SimplyBind('prop').of(dispatcher) .to('multi:prop1').of([objectA, objectB, objectC]) expect(objectA.prop1).to.equal 'value1' expect(objectB.prop1).to.equal 'value1' expect(objectC.prop1).to.equal 'value1' binding.unBind() dispatcher.prop = 'value2' expect(objectA.prop1).to.equal 'value1' expect(objectB.prop1).to.equal 'value1' expect(objectC.prop1).to.equal 'value1' restartSandbox() test "Binding multiple ObjectProps to a single prop and then calling .unBind() should unbind all props from that single prop", ()-> receiver = 'prop':null objectA.prop1 = objectB.prop1 = objectC.prop1 = 'value1' binding = SimplyBind('multi:prop1').of([objectA, objectB, objectC]) .to('prop').of(receiver) expect(receiver.prop).to.equal 'value1' expect(objectA.prop1).to.equal 'value1' expect(objectB.prop1).to.equal 'value1' expect(objectC.prop1).to.equal 'value1' binding.unBind() objectA.prop1 = 'value2' expect(receiver.prop).to.equal 'value1' expect(objectA.prop1).to.equal 'value2' expect(objectB.prop1).to.equal 'value1' expect(objectC.prop1).to.equal 'value1' objectB.prop1 = 'value3' expect(receiver.prop).to.equal 'value1' expect(objectA.prop1).to.equal 'value2' expect(objectB.prop1).to.equal 'value3' expect(objectC.prop1).to.equal 'value1' objectC.prop1 = 'value4' expect(receiver.prop).to.equal 'value1' expect(objectA.prop1).to.equal 'value2' expect(objectB.prop1).to.equal 'value3' expect(objectC.prop1).to.equal 'value4' restartSandbox()