Sha256: 6f0fe4494434e903f12bec052f1d2d124aa4eda476ca430674d40ad2d6940faa
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
describe 'The State Model Concern', -> view = Luca.register "Luca.components.StatefulView" view.extends "Luca.View" view.mixesIn "StateModel" view.defines stateful: key1: "val1" key2: "val2" it "should create a state model on the view", -> view = new Luca.components.StatefulView() expect( view.state ).toBeDefined() expect( Luca.isBackboneModel(view.state) ).toEqual true it "should delegate the get method on the state model to the view", -> view = new Luca.components.StatefulView() expect( view.get ).toBeDefined() expect( view.get('key1') ).toEqual 'val1' it "should delegate the set method on the state model to the view", -> view = new Luca.components.StatefulView() view.set('key1','boom') expect( view.state.get('key1') ).toEqual 'boom' it "should apply the default state attributes", -> view = new Luca.components.StatefulView() expect( view.state.toJSON() ).toEqual key1:"val1", key2: "val2" describe 'State Change Event Bindings', -> it "should trigger state change events on the view", -> view = new Luca.components.StatefulView() view.set('key1','boom') expect( view ).toHaveTriggered("state:change") it "should trigger individual attribute change events on the view", -> view = new Luca.components.StatefulView() view.set('key1','boom') expect( view ).toHaveTriggered("state:change:key1") it "should respond to @stateChangeEvents configuration", -> view = new Luca.components.StatefulView onKeyChange: sinon.spy() blah: sinon.spy() stateChangeEvents: "key1" : "onKeyChange" "key2" : "blah" view.set('key1','boom') expect( view.blah ).not.toHaveBeenCalled() expect( view.onKeyChange ).toHaveBeenCalled()
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
luca-0.9.8 | spec/concerns/state_model_spec.coffee |