@@ -64,42 +64,6 @@ describe('Tabs', () => {
6464 vm . $destroy ( )
6565 } )
6666
67- it ( 'should be able to use with v-model' , async ( ) => {
68- let res = Vue . compile ( '<tabs v-model="index"><tab title="tab0">tab0</tab><tab title="tab1">tab1</tab></tabs>' )
69- let vm = new Vue ( {
70- data ( ) {
71- return {
72- index : 1
73- }
74- } ,
75- components : { Tab, Tabs} ,
76- render : res . render ,
77- staticRenderFns : res . staticRenderFns
78- } ) . $mount ( )
79- let $el = $ ( vm . $el )
80- await vm . $nextTick ( )
81- await vm . $nextTick ( )
82- let nav = $el . find ( '.nav-tabs' ) . get ( 0 )
83- let content = $el . find ( '.tab-content' ) . get ( 0 )
84- let activeTab = nav . querySelectorAll ( '.active' )
85- expect ( activeTab . length ) . to . equal ( 1 )
86- expect ( activeTab [ 0 ] . querySelector ( 'a' ) . textContent ) . to . equal ( 'tab1' )
87- let activeContent = content . querySelectorAll ( '.tab-pane.active' )
88- expect ( activeContent . length ) . to . equal ( 1 )
89- expect ( activeContent [ 0 ] . textContent ) . to . contain ( 'tab1' )
90- utils . triggerEvent ( nav . querySelectorAll ( 'li' ) [ 0 ] . querySelector ( 'a' ) , 'click' )
91- await vm . $nextTick ( )
92- await utils . sleep ( 350 )
93- activeTab = nav . querySelectorAll ( '.active' )
94- expect ( activeTab . length ) . to . equal ( 1 )
95- expect ( activeTab [ 0 ] . querySelector ( 'a' ) . textContent ) . to . equal ( 'tab0' )
96- activeContent = content . querySelectorAll ( '.tab-pane.active' )
97- expect ( activeContent . length ) . to . equal ( 1 )
98- expect ( activeContent [ 0 ] . textContent ) . to . contain ( 'tab0' )
99- vm . $destroy ( )
100- $el . remove ( )
101- } )
102-
10367 it ( 'should be able to render first tab on open' , async ( ) => {
10468 await vm . $nextTick ( )
10569 await vm . $nextTick ( )
@@ -200,4 +164,73 @@ describe('Tabs', () => {
200164 expect ( activeContent . length ) . to . equal ( 1 )
201165 expect ( activeContent [ 0 ] . querySelector ( 'p' ) . textContent ) . to . contain ( 'Etsy mixtape wayfarers' )
202166 } )
167+
168+ it ( 'should be able to use with v-model' , async ( ) => {
169+ let _vm = vm . $refs [ 'tabs-dynamic-example' ]
170+ let $el = $ ( _vm . $el )
171+ await vm . $nextTick ( )
172+ await vm . $nextTick ( )
173+ let nav = $el . find ( '.nav-tabs' ) . get ( 0 )
174+ let content = $el . find ( '.tab-content' ) . get ( 0 )
175+ expect ( nav . querySelectorAll ( 'li' ) . length ) . to . equal ( 1 )
176+ // check active tab
177+ let activeTab = nav . querySelectorAll ( '.active' )
178+ expect ( activeTab . length ) . to . equal ( 1 )
179+ expect ( activeTab [ 0 ] . querySelector ( 'a' ) . textContent ) . to . equal ( 'Tab 0' )
180+ // check active content
181+ let activeContent = content . querySelectorAll ( '.tab-pane.active' )
182+ expect ( activeContent . length ) . to . equal ( 1 )
183+ expect ( activeContent [ 0 ] . textContent ) . to . contain ( 'Tab 0' )
184+ } )
185+
186+ it ( 'should be able to push tab' , async ( ) => {
187+ let _vm = vm . $refs [ 'tabs-dynamic-example' ]
188+ let $el = $ ( _vm . $el )
189+ let nav = $el . find ( '.nav-tabs' ) . get ( 0 )
190+ let content = $el . find ( '.tab-content' ) . get ( 0 )
191+ let pushBtn = $el . find ( '.btn' ) . get ( 0 )
192+ await vm . $nextTick ( )
193+ await vm . $nextTick ( )
194+ // Add a tab
195+ pushBtn . click ( )
196+ await vm . $nextTick ( )
197+ await utils . sleep ( 350 )
198+ expect ( nav . querySelectorAll ( 'li' ) . length ) . to . equal ( 2 )
199+ // check active tab
200+ let activeTab = nav . querySelectorAll ( '.active' )
201+ expect ( activeTab . length ) . to . equal ( 1 )
202+ expect ( activeTab [ 0 ] . querySelector ( 'a' ) . textContent ) . to . equal ( 'Tab 1' )
203+ // check active content
204+ let activeContent = content . querySelectorAll ( '.tab-pane.active' )
205+ expect ( activeContent . length ) . to . equal ( 1 )
206+ expect ( activeContent [ 0 ] . textContent ) . to . contain ( 'Tab 1' )
207+ } )
208+
209+ it ( 'should be able to pop tab' , async ( ) => {
210+ let _vm = vm . $refs [ 'tabs-dynamic-example' ]
211+ let $el = $ ( _vm . $el )
212+ let nav = $el . find ( '.nav-tabs' ) . get ( 0 )
213+ let content = $el . find ( '.tab-content' ) . get ( 0 )
214+ let pushBtn = $el . find ( '.btn' ) . get ( 0 )
215+ let popBtn = $el . find ( '.btn' ) . get ( 1 )
216+ await vm . $nextTick ( )
217+ await vm . $nextTick ( )
218+ // Add a tab
219+ pushBtn . click ( )
220+ await vm . $nextTick ( )
221+ await utils . sleep ( 350 )
222+ // Delete a tab
223+ popBtn . click ( )
224+ await vm . $nextTick ( )
225+ await utils . sleep ( 350 )
226+ expect ( nav . querySelectorAll ( 'li' ) . length ) . to . equal ( 1 )
227+ // check active tab
228+ let activeTab = nav . querySelectorAll ( '.active' )
229+ expect ( activeTab . length ) . to . equal ( 1 )
230+ expect ( activeTab [ 0 ] . querySelector ( 'a' ) . textContent ) . to . equal ( 'Tab 0' )
231+ // check active content
232+ let activeContent = content . querySelectorAll ( '.tab-pane.active' )
233+ expect ( activeContent . length ) . to . equal ( 1 )
234+ expect ( activeContent [ 0 ] . textContent ) . to . contain ( 'Tab 0' )
235+ } )
203236} )
0 commit comments