@@ -4,15 +4,28 @@ import draggable from "@/vuedraggable";
44let wrapper ;
55let vm ;
66let props ;
7+ let items ;
8+ let html ;
79
810describe ( "draggable.vue" , ( ) => {
911 beforeEach ( ( ) => {
10- wrapper = shallowMount ( draggable ) ;
12+ items = [ "a" , "b" , "c" ] ;
13+ wrapper = shallowMount ( draggable , {
14+ propsData :{
15+ list : items
16+ } ,
17+ slots :{
18+ default : items . map ( item => `<div>${ item } </div>` ) ,
19+ header : "<h1/>" ,
20+ footer : "<footer/>"
21+ }
22+ } ) ;
1123 vm = wrapper . vm ;
1224 props = vm . $options . props ;
25+ html = wrapper . element ;
1326 } ) ;
1427
15- it ( "should instanciate without error" , ( ) => {
28+ it ( "should instantiate without error" , ( ) => {
1629 expect ( wrapper ) . not . toBeUndefined ( ) ;
1730 } ) ;
1831
@@ -63,4 +76,23 @@ describe("draggable.vue", () => {
6376 expect ( clone . type ) . toBe ( Function ) ;
6477 expect ( clone . default ( expected ) ) . toBe ( expected ) ;
6578 } )
79+
80+ it ( "renders correctly" , ( ) => {
81+ expect ( wrapper . html ( ) ) . toMatch ( / ^ < d i v > .* < \/ d i v > $ / ) ;
82+ } )
83+
84+ test . each ( [
85+ "ul" ,
86+ "span" ,
87+ "div"
88+ ] ) (
89+ "renders tag %s as root element" ,
90+ ( tag ) => {
91+ wrapper = shallowMount ( draggable , {
92+ propsData : { tag }
93+ } ) ;
94+ const expectedRegex = new RegExp ( `^<${ tag } >.*<\/${ tag } >$` ) ;
95+ expect ( wrapper . html ( ) ) . toMatch ( expectedRegex ) ;
96+ }
97+ )
6698} ) ;
0 commit comments