master
1describe "csx.AutoViewSetup", ->
2 subject = null
3 logger = null
4
5 beforeEach ->
6 spyOn(console, 'error')
7 subject = new csx.AutoViewSetup()
8
9 describe "#execute", ->
10
11 beforeEach ->
12 csx.AutoView.views = {}
13
14 it 'attaches the autoview to the DOM element', ->
15 fixture.set '<div id="item" data-autoview="My.ChangePassword"></div>'
16 subject.execute()
17 result = csx.AutoView.views['My-ChangePassword'][0]
18 expect(result instanceof csx.Views.My.ChangePassword).toEqual(true)
19 expect($('#item').data('autoview-setup-complete')).toEqual(true)
20
21 it "returns nil if the autoview cannot be discovered", ->
22 fixture.set '<div data-autoview="Unknown"></div>'
23 subject.execute()
24
25 expect(_.isEmpty(csx.AutoView.views)).toEqual(true)
26 expect(console.error).toHaveBeenCalled()
27
28 it "attaches the auto model to the auto view", ->
29 class csx.TestView extends csx.AutoView
30 @viewName 'test-view'
31
32 class csx.Models.Test extends Backbone.Model
33 defaults:
34 test: null
35
36 fixture.set '<div id="item" data-autoview="test-view" data-automodel="Test"></div>'
37 subject.execute()
38 result = csx.AutoView.views['test-view'][0]
39 expect(result instanceof csx.TestView).toEqual(true)
40 expect(result.model instanceof csx.Models.Test).toEqual(true)