22
33module " Blockquoted TaskList updates" ,
44 setup : ->
5- @blockquote = $ ' <blockquote>'
6-
75 @container = $ ' <div>' , class : ' js-task-list-container'
6+
7+ @blockquote = $ ' <blockquote>'
88
99 @list = $ ' <ul>' , class : ' task-list'
1010
@@ -21,20 +21,56 @@ module "Blockquoted TaskList updates",
2121 class : ' task-list-item-checkbox'
2222 disabled : true
2323 checked : false
24+
25+ @innerBlockquote = $ ' <blockquote>'
26+
27+ @innerList = $ ' <ul>' , class : ' task-list'
28+
29+ @innerCompleteItem = $ ' <li>' , class : ' task-list-item'
30+ @innerCompleteCheckbox = $ ' <input>' ,
31+ type : ' checkbox'
32+ class : ' task-list-item-checkbox'
33+ disabled : true
34+ checked : true
35+
36+ @innerIncompleteItem = $ ' <li>' , class : ' task-list-item'
37+ @innerIncompleteCheckbox = $ ' <input>' ,
38+ type : ' checkbox'
39+ class : ' task-list-item-checkbox'
40+ disabled : true
41+ checked : false
2442
2543 @field = $ ' <textarea>' , class : ' js-task-list-field' , text : """
2644 > - [x] complete
2745 > - [ ] incomplete
46+ > > - [x] inner complete
47+ > > - [ ] inner incomplete
2848 """
2949
3050 @changes =
3151 toComplete : """
3252 > - [ ] complete
3353 > - [ ] incomplete
54+ > > - [x] inner complete
55+ > > - [ ] inner incomplete
3456 """
3557 toIncomplete : """
3658 > - [x] complete
3759 > - [x] incomplete
60+ > > - [x] inner complete
61+ > > - [ ] inner incomplete
62+ """
63+ toInnerComplete : """
64+ > - [x] complete
65+ > - [ ] incomplete
66+ > > - [ ] inner complete
67+ > > - [ ] inner incomplete
68+ """
69+ toInnerIncomplete : """
70+ > - [x] complete
71+ > - [ ] incomplete
72+ > > - [x] inner complete
73+ > > - [x] inner incomplete
3874 """
3975
4076 @completeItem .append @completeCheckbox
@@ -45,12 +81,25 @@ module "Blockquoted TaskList updates",
4581 @list .append @incompleteItem
4682 @incompleteItem .expectedIndex = 2
4783
48- @container .append @list
49- @container .append @field
84+ @blockquote .append @list
85+ @blockquote .append @field
86+
87+ @innerCompleteItem .append @innerCompleteCheckbox
88+ @innerList .append @innerCompleteItem
89+ @innerCompleteItem .expectedIndex = 3
90+
91+ @innerIncompleteItem .append @innerIncompleteCheckbox
92+ @innerList .append @innerIncompleteItem
93+ @innerIncompleteItem .expectedIndex = 4
5094
51- @blockquote .append @container
95+ @innerBlockquote .append @innerList
96+ @innerBlockquote .append @innerField
97+
98+ @blockquote .append @innerBlockquote
99+
100+ @container .append @blockquote
52101
53- $ (' #qunit-fixture' ).append (@blockquote )
102+ $ (' #qunit-fixture' ).append (@container )
54103 @container .taskList ()
55104
56105 teardown : ->
@@ -83,3 +132,31 @@ asyncTest "updates the source, marking the complete item as incomplete", ->
83132 , 20
84133
85134 @completeCheckbox .click ()
135+
136+ asyncTest " updates the source of a quoted quoted item, marking the incomplete item as complete" , ->
137+ expect 3
138+
139+ @field .on ' tasklist:changed' , (event , index , checked ) =>
140+ ok checked
141+ equal index, @innerIncompleteItem .expectedIndex
142+ equal @field .val (), @changes .toInnerIncomplete
143+
144+ setTimeout ->
145+ start ()
146+ , 20
147+
148+ @innerIncompleteCheckbox .click ()
149+
150+ asyncTest " updates the source of a quoted quoted item, marking the complete item as incomplete" , ->
151+ expect 3
152+
153+ @field .on ' tasklist:changed' , (event , index , checked ) =>
154+ ok ! checked
155+ equal index, @innerCompleteItem .expectedIndex
156+ equal @field .val (), @changes .toInnerComplete
157+
158+ setTimeout ->
159+ start ()
160+ , 20
161+
162+ @innerCompleteCheckbox .click ()
0 commit comments