-
Notifications
You must be signed in to change notification settings - Fork 531
/
insertsnippet_spec.js.coffee
51 lines (41 loc) · 1.95 KB
/
insertsnippet_spec.js.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
describe "Mercury.modalHandlers.insertSnippet", ->
beforeEach ->
fixture.load('mercury/modals/insertsnippet.html')
Mercury.Snippet.all = []
Mercury.Snippet.load({
'snippet_0': {name: 'foo', options: {'first_name': "Jeremy", 'last_name': "Jackson"}},
})
@modal =
element: $(fixture.el)
hide: ->
options: {snippetName: 'test'}
Mercury.modalHandlers.insertSnippet.call(@modal)
describe "submitting", ->
it "hides the modal", ->
spy = spyOn(@modal, 'hide').andCallFake(=>)
jasmine.simulate.click($('#submit').get(0))
expect(spy.callCount).toEqual(1)
describe "if there's an active snippet", ->
beforeEach ->
Mercury.snippet = Mercury.Snippet.all[0]
it "updates the snippet", ->
spy = spyOn(Mercury.Snippet.prototype, 'setOptions').andCallThrough()
jasmine.simulate.click($('#submit').get(0))
expect(spy.callCount).toEqual(1)
expect(Mercury.Snippet.all[0]['options']).toEqual({first_name: 'Wilma', last_name: 'Flintstone'})
it "triggers an action", ->
spy = spyOn(Mercury, 'trigger').andCallFake(=>)
jasmine.simulate.click($('#submit').get(0))
expect(spy.callCount).toEqual(1)
expect(spy.argsForCall[0]).toEqual(['action', {action: 'insertSnippet', value: Mercury.Snippet.all[0]}])
describe "if there's no active snippet", ->
it "creates a snippet", ->
spy = spyOn(Mercury.Snippet, 'create').andCallThrough()
jasmine.simulate.click($('#submit').get(0))
expect(spy.callCount).toEqual(1)
expect(Mercury.Snippet.all[1]['options']).toEqual({first_name: 'Wilma', last_name: 'Flintstone'})
it "triggers an action", ->
spy = spyOn(Mercury, 'trigger').andCallFake(=>)
jasmine.simulate.click($('#submit').get(0))
expect(spy.callCount).toEqual(1)
expect(spy.argsForCall[0]).toEqual(['action', {action: 'insertSnippet', value: Mercury.Snippet.all[1]}])