@@ -14,8 +14,9 @@ function factory() {
1414 api : "pages/test" ,
1515 blueprint : "default" ,
1616 content : { } ,
17- tab : { name : "main" } ,
18- tabs : [ { name : "main" } ]
17+ diff : { } ,
18+ tab : { name : "main" , columns : { } } ,
19+ tabs : [ { name : "main" } , { name : "meta" } ]
1920 } ,
2021 shallow : true ,
2122 global : {
@@ -63,83 +64,104 @@ describe("PreviewForm.vue", () => {
6364 original . mockClear ( ) ;
6465 } ) ;
6566
66- it ( "listens to loaded fields and sections while mounted" , ( ) => {
67- const wrapper = factory ( ) ;
67+ describe ( "events" , ( ) => {
68+ it ( "listens to loaded fields and sections while mounted" , ( ) => {
69+ const wrapper = factory ( ) ;
70+
71+ expect ( events . on ) . toHaveBeenCalledWith (
72+ "field.loaded" ,
73+ wrapper . vm . fixLinks
74+ ) ;
75+ expect ( events . on ) . toHaveBeenCalledWith (
76+ "section.loaded" ,
77+ wrapper . vm . fixLinks
78+ ) ;
79+
80+ const fixLinks = wrapper . vm . fixLinks ;
81+ wrapper . unmount ( ) ;
82+
83+ expect ( events . off ) . toHaveBeenCalledWith ( "field.loaded" , fixLinks ) ;
84+ expect ( events . off ) . toHaveBeenCalledWith ( "section.loaded" , fixLinks ) ;
85+ } ) ;
86+ } ) ;
6887
69- expect ( events . on ) . toHaveBeenCalledWith ( "field.loaded" , wrapper . vm . fixLinks ) ;
70- expect ( events . on ) . toHaveBeenCalledWith (
71- "section.loaded" ,
72- wrapper . vm . fixLinks
73- ) ;
88+ describe ( "form" , ( ) => {
89+ it ( "passes on the events of the form and its controls" , async ( ) => {
90+ const wrapper = factory ( ) ;
7491
75- const fixLinks = wrapper . vm . fixLinks ;
76- wrapper . unmount ( ) ;
92+ await wrapper . find ( "k-model-form" ) . trigger ( "input" ) ;
93+ await wrapper . find ( "k-model-form" ) . trigger ( "submit" ) ;
94+ await wrapper . find ( "k-form-controls" ) . trigger ( "discard" ) ;
7795
78- expect ( events . off ) . toHaveBeenCalledWith ( "field.loaded" , fixLinks ) ;
79- expect ( events . off ) . toHaveBeenCalledWith ( "section.loaded" , fixLinks ) ;
96+ expect ( wrapper . emitted ( "input" ) ) . toHaveLength ( 1 ) ;
97+ expect ( wrapper . emitted ( "submit" ) ) . toHaveLength ( 1 ) ;
98+ expect ( wrapper . emitted ( "discard" ) ) . toHaveLength ( 1 ) ;
99+ } ) ;
80100 } ) ;
81101
82- it ( "redirects page links to the preview form" , ( ) => {
83- const wrapper = factory ( ) ;
84- const { $el, links } = loaded ( "/pages/test+child" ) ;
102+ describe ( "fixLinks" , ( ) => {
103+ it ( "redirects page links to the preview form" , ( ) => {
104+ const wrapper = factory ( ) ;
105+ const { $el, links } = loaded ( "/pages/test+child" ) ;
85106
86- wrapper . vm . fixLinks ( { $el } ) ;
107+ wrapper . vm . fixLinks ( { $el } ) ;
87108
88- const event = { preventDefault : vi . fn ( ) } ;
89- links [ 0 ] . __vue__ . onClick ( event as unknown as Event ) ;
109+ const event = { preventDefault : vi . fn ( ) } ;
110+ links [ 0 ] . __vue__ . onClick ( event as unknown as Event ) ;
90111
91- expect ( event . preventDefault ) . toHaveBeenCalled ( ) ;
92- expect ( original ) . not . toHaveBeenCalled ( ) ;
93- expect ( wrapper . emitted ( "navigate" ) ) . toStrictEqual ( [
94- [ "/pages/test+child/preview/form" ]
95- ] ) ;
96- } ) ;
112+ expect ( event . preventDefault ) . toHaveBeenCalled ( ) ;
113+ expect ( original ) . not . toHaveBeenCalled ( ) ;
114+ expect ( wrapper . emitted ( "navigate" ) ) . toStrictEqual ( [
115+ [ "/pages/test+child/preview/form" ]
116+ ] ) ;
117+ } ) ;
97118
98- it ( "redirects all page links of the element" , ( ) => {
99- const wrapper = factory ( ) ;
100- const { $el, links } = loaded ( "/pages/a" , "/pages/b" ) ;
119+ it ( "redirects all page links of the element" , ( ) => {
120+ const wrapper = factory ( ) ;
121+ const { $el, links } = loaded ( "/pages/a" , "/pages/b" ) ;
101122
102- wrapper . vm . fixLinks ( { $el } ) ;
123+ wrapper . vm . fixLinks ( { $el } ) ;
103124
104- for ( const link of links ) {
105- link . __vue__ . onClick ( { preventDefault : vi . fn ( ) } as unknown as Event ) ;
106- }
125+ for ( const link of links ) {
126+ link . __vue__ . onClick ( { preventDefault : vi . fn ( ) } as unknown as Event ) ;
127+ }
107128
108- expect ( wrapper . emitted ( "navigate" ) ) . toStrictEqual ( [
109- [ "/pages/a/preview/form" ] ,
110- [ "/pages/b/preview/form" ]
111- ] ) ;
112- } ) ;
129+ expect ( wrapper . emitted ( "navigate" ) ) . toStrictEqual ( [
130+ [ "/pages/a/preview/form" ] ,
131+ [ "/pages/b/preview/form" ]
132+ ] ) ;
133+ } ) ;
113134
114- it ( "keeps links that don't point to a page view" , ( ) => {
115- const wrapper = factory ( ) ;
116- const { $el, links } = loaded (
117- "/pages/test+child/files/test.jpg" ,
118- "/users/test" ,
119- undefined
120- ) ;
135+ it ( "keeps links that don't point to a page view" , ( ) => {
136+ const wrapper = factory ( ) ;
137+ const { $el, links } = loaded (
138+ "/pages/test+child/files/test.jpg" ,
139+ "/users/test" ,
140+ undefined
141+ ) ;
121142
122- wrapper . vm . fixLinks ( { $el } ) ;
143+ wrapper . vm . fixLinks ( { $el } ) ;
123144
124- for ( const link of links ) {
125- expect ( link . __vue__ . onClick ) . toBe ( original ) ;
145+ for ( const link of links ) {
146+ expect ( link . __vue__ . onClick ) . toBe ( original ) ;
126147
127- link . __vue__ . onClick ( { preventDefault : vi . fn ( ) } as unknown as Event ) ;
128- }
148+ link . __vue__ . onClick ( { preventDefault : vi . fn ( ) } as unknown as Event ) ;
149+ }
129150
130- expect ( original ) . toHaveBeenCalledTimes ( 3 ) ;
131- expect ( wrapper . emitted ( "navigate" ) ) . toBeUndefined ( ) ;
132- } ) ;
151+ expect ( original ) . toHaveBeenCalledTimes ( 3 ) ;
152+ expect ( wrapper . emitted ( "navigate" ) ) . toBeUndefined ( ) ;
153+ } ) ;
133154
134- it ( "ignores links outside of item titles" , ( ) => {
135- const wrapper = factory ( ) ;
136- const { $el, links } = loaded ( "/pages/test+child" ) ;
155+ it ( "ignores links outside of item titles" , ( ) => {
156+ const wrapper = factory ( ) ;
157+ const { $el, links } = loaded ( "/pages/test+child" ) ;
137158
138- // move the link out of the item title
139- $el . append ( links [ 0 ] ) ;
159+ // move the link out of the item title
160+ $el . append ( links [ 0 ] ) ;
140161
141- wrapper . vm . fixLinks ( { $el } ) ;
162+ wrapper . vm . fixLinks ( { $el } ) ;
142163
143- expect ( links [ 0 ] . __vue__ . onClick ) . toBe ( original ) ;
164+ expect ( links [ 0 ] . __vue__ . onClick ) . toBe ( original ) ;
165+ } ) ;
144166 } ) ;
145167} ) ;
0 commit comments