@@ -5,7 +5,7 @@ describe('navbar-toggle', () => {
55 it ( 'default has tag "button"' , async ( ) => {
66 const wrapper = mount ( BNavbarToggle , {
77 propsData : {
8- target : 'target'
8+ target : 'target-1 '
99 }
1010 } )
1111 expect ( wrapper . is ( 'button' ) ) . toBe ( true )
@@ -14,7 +14,7 @@ describe('navbar-toggle', () => {
1414 it ( 'default has class "navbar-toggler"' , async ( ) => {
1515 const wrapper = mount ( BNavbarToggle , {
1616 propsData : {
17- target : 'target'
17+ target : 'target-2 '
1818 }
1919 } )
2020 expect ( wrapper . classes ( ) ) . toContain ( 'navbar-toggler' )
@@ -24,19 +24,19 @@ describe('navbar-toggle', () => {
2424 it ( 'default has default attributes' , async ( ) => {
2525 const wrapper = mount ( BNavbarToggle , {
2626 propsData : {
27- target : 'target'
27+ target : 'target-3 '
2828 }
2929 } )
3030 expect ( wrapper . attributes ( 'type' ) ) . toBe ( 'button' )
31- expect ( wrapper . attributes ( 'aria-controls' ) ) . toBe ( 'target' )
31+ expect ( wrapper . attributes ( 'aria-controls' ) ) . toBe ( 'target-3 ' )
3232 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'false' )
3333 expect ( wrapper . attributes ( 'aria-label' ) ) . toBe ( 'Toggle navigation' )
3434 } )
3535
3636 it ( 'default has inner button-close' , async ( ) => {
3737 const wrapper = mount ( BNavbarToggle , {
3838 propsData : {
39- target : 'target'
39+ target : 'target-4 '
4040 }
4141 } )
4242 expect ( wrapper . find ( 'span.navbar-toggler-icon' ) ) . toBeDefined ( )
@@ -45,17 +45,45 @@ describe('navbar-toggle', () => {
4545 it ( 'accepts custom label when label prop is set' , async ( ) => {
4646 const wrapper = mount ( BNavbarToggle , {
4747 propsData : {
48- target : 'target' ,
48+ target : 'target-5 ' ,
4949 label : 'foobar'
5050 }
5151 } )
5252 expect ( wrapper . attributes ( 'aria-label' ) ) . toBe ( 'foobar' )
5353 } )
5454
55+ it ( 'default slot scope works' , async ( ) => {
56+ let scope = null
57+ const wrapper = mount ( BNavbarToggle , {
58+ propsData : {
59+ target : 'target-6'
60+ } ,
61+ scopedSlots : {
62+ default ( ctx ) {
63+ scope = ctx
64+ return this . $createElement ( 'div' , 'foobar' )
65+ }
66+ }
67+ } )
68+
69+ expect ( scope ) . not . toBe ( null )
70+ expect ( scope . expanded ) . toBe ( false )
71+
72+ wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'target-6' , true )
73+
74+ expect ( scope ) . not . toBe ( null )
75+ expect ( scope . expanded ) . toBe ( true )
76+
77+ wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'target-6' , false )
78+
79+ expect ( scope ) . not . toBe ( null )
80+ expect ( scope . expanded ) . toBe ( false )
81+ } )
82+
5583 it ( 'emits click event' , async ( ) => {
5684 const wrapper = mount ( BNavbarToggle , {
5785 propsData : {
58- target : 'target'
86+ target : 'target-7 '
5987 }
6088 } )
6189 let rootClicked = false
@@ -77,22 +105,22 @@ describe('navbar-toggle', () => {
77105 it ( 'sets aria-expanded when receives root emit for target' , async ( ) => {
78106 const wrapper = mount ( BNavbarToggle , {
79107 propsData : {
80- target : 'target'
108+ target : 'target-8 '
81109 }
82110 } )
83111
84112 // Private state event
85- wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'target' , true )
113+ wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'target-8 ' , true )
86114 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'true' )
87- wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'target' , false )
115+ wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'target-8 ' , false )
88116 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'false' )
89117 wrapper . vm . $root . $emit ( 'bv::collapse::state' , 'foo' , true )
90118 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'false' )
91119
92120 // Private sync event
93- wrapper . vm . $root . $emit ( 'bv::collapse::sync::state' , 'target' , true )
121+ wrapper . vm . $root . $emit ( 'bv::collapse::sync::state' , 'target-8 ' , true )
94122 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'true' )
95- wrapper . vm . $root . $emit ( 'bv::collapse::sync::state' , 'target' , false )
123+ wrapper . vm . $root . $emit ( 'bv::collapse::sync::state' , 'target-8 ' , false )
96124 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'false' )
97125 wrapper . vm . $root . $emit ( 'bv::collapse::sync::state' , 'foo' , true )
98126 expect ( wrapper . attributes ( 'aria-expanded' ) ) . toBe ( 'false' )
0 commit comments