@@ -72,33 +72,22 @@ describe("VueFormGenerator.vue", () => {
7272 } ) ;
7373
7474 describe ( "check form-element classes" , ( ) => {
75- let group ;
76- let schema = {
77- fields : [
78- {
79- type : "input" ,
80- fieldOptions : {
81- inputType : "text"
82- } ,
83- label : "Name" ,
84- model : "name" ,
85- readonly : false ,
86- featured : false ,
87- required : false ,
88- disabled : false
89- }
90- ]
91- } ;
75+ let formGenerator ;
76+ let formElement ;
77+ let schema ;
9278
9379 beforeEach ( ( ) => {
9480 // Reset schema value
9581 schema = {
9682 fields : [
9783 {
9884 type : "input" ,
99- fieldOptions : {
100- inputType : "text"
101- } ,
85+ fieldOptions : { inputType : "text" } ,
86+ /*
87+ styleClasses need to be defined for the unit test to work (add getter/setter)
88+ In real use, it is not mandatory
89+ */
90+ styleClasses : "" ,
10291 label : "Name" ,
10392 model : "name" ,
10493 readonly : false ,
@@ -109,83 +98,95 @@ describe("VueFormGenerator.vue", () => {
10998 ]
11099 } ;
111100 createFormGenerator ( { schema } ) ;
112- group = wrapper . find ( ".form-element" ) ;
101+ formGenerator = wrapper . find ( { name : "formGenerator" } ) ;
102+ formElement = wrapper . find ( { name : "form-element" } ) ;
113103 } ) ;
114104
115105 it ( "should be minimal classes" , ( ) => {
116- expect ( group . classes ( ) . length ) . to . be . equal ( 2 ) ;
117- expect ( group . classes ( ) ) . to . include ( "form-element" ) ;
118- expect ( group . classes ( ) ) . to . include ( "field-input" ) ;
106+ expect ( formElement . classes ( ) . length ) . to . be . equal ( 3 ) ;
107+ expect ( formElement . classes ( ) ) . to . include ( "form-element" ) ;
108+ expect ( formElement . classes ( ) ) . to . include ( "field-input" ) ;
119109 } ) ;
120110
121111 it ( "should be featured class" , ( ) => {
122112 wrapper . vm . schema . fields [ 0 ] . featured = true ;
123113
124- expect ( group . classes ( ) ) . to . include ( "featured" ) ;
114+ expect ( formElement . classes ( ) ) . to . include ( "featured" ) ;
125115 } ) ;
126116
127117 it ( "should be readonly class" , ( ) => {
128118 wrapper . vm . schema . fields [ 0 ] . readonly = true ;
129119
130- expect ( group . classes ( ) ) . to . include ( "readonly" ) ;
120+ expect ( formElement . classes ( ) ) . to . include ( "readonly" ) ;
131121 } ) ;
132122
133123 it ( "should be disabled class" , ( ) => {
134124 wrapper . vm . schema . fields [ 0 ] . disabled = true ;
135125
136- expect ( group . classes ( ) ) . to . include ( "disabled" ) ;
126+ expect ( formElement . classes ( ) ) . to . include ( "disabled" ) ;
137127 } ) ;
138128
139129 it ( "should be required class" , ( ) => {
140130 wrapper . vm . schema . fields [ 0 ] . required = true ;
141131
142- expect ( group . classes ( ) ) . to . include ( "required" ) ;
132+ expect ( formElement . classes ( ) ) . to . include ( "required" ) ;
143133 } ) ;
144134
145135 it ( "should be error class" , ( ) => {
146- const formElement = wrapper . find ( { name : "form-element" } ) ;
147136 formElement . vm . onChildValidated ( [ "Validation error!" ] ) ;
148- expect ( group . classes ( ) ) . to . include ( "error" ) ;
137+ expect ( formElement . classes ( ) ) . to . include ( "error" ) ;
149138 } ) ;
150139
151140 describe ( "custom validation classes" , ( ) => {
141+ let formGenerator ;
142+ let formElement ;
152143 beforeEach ( ( ) => {
153- let options = { validationErrorClass : "has-error" , validationSuccessClass : "has-success" } ;
144+ let options = {
145+ validationCleanClass : "is-clean" ,
146+ validationSuccessClass : "has-success" ,
147+ validationErrorClass : "has-error"
148+ } ;
154149 createFormGenerator ( {
155150 schema,
156151 options : options
157152 } ) ;
158- group = wrapper . find ( ".form-element" ) ;
153+ formGenerator = wrapper . find ( { name : "formGenerator" } ) ;
154+ formElement = wrapper . find ( { name : "form-element" } ) ;
155+ } ) ;
156+
157+ it ( "clean class" , ( ) => {
158+ expect ( formElement . classes ( ) ) . to . include ( "is-clean" ) ;
159159 } ) ;
160160
161161 it ( "error class" , ( ) => {
162- const formElement = wrapper . find ( { name : "form-element" } ) ;
163162 formElement . vm . onChildValidated ( [ "Validation error!" ] ) ;
164163
165- expect ( group . classes ( ) ) . to . include ( "has-error" ) ;
164+ expect ( formElement . classes ( ) ) . to . include ( "has-error" ) ;
166165 } ) ;
167166
168- it ( "success class" , ( ) => {
169- const formElement = wrapper . find ( {
170- name : "form-element"
171- } ) ;
172- formElement . vm . onChildValidated ( [ ] ) ;
173-
174- expect ( group . classes ( ) ) . to . include ( "has-success" ) ;
167+ it ( "success class" , ( done ) => {
168+ formGenerator . vm . validate ( ) . then (
169+ ( ) => {
170+ expect ( formElement . classes ( ) ) . to . include ( "has-success" ) ;
171+ done ( ) ;
172+ } ,
173+ ( ) => { }
174+ ) ;
175175 } ) ;
176176 } ) ;
177- // Work in real use, but not here
178- it . skip ( "should be add a custom classes" , ( ) => {
179- wrapper . vm . schema . fields [ 0 ] . styleClasses = "classA" ;
180177
181- expect ( group . classes ( ) ) . to . include ( "classA" ) ;
178+ it ( "should be add a custom classes" , ( ) => {
179+ schema . fields [ 0 ] . styleClasses = "classA" ;
180+ formGenerator . setProps ( { schema : { ...schema } } ) ;
181+
182+ expect ( formElement . classes ( ) ) . to . include ( "classA" ) ;
182183 } ) ;
183- // Work in real use, but not here
184- it . skip ( "should be add more custom classes" , ( ) => {
185- wrapper . vm . schema . fields [ 0 ] . styleClasses = [ "classB" , "classC" ] ;
186184
187- expect ( group . classes ( ) ) . to . include ( "classB" ) ;
188- expect ( group . classes ( ) ) . to . include ( "classC" ) ;
185+ it ( "should be add more custom classes" , ( ) => {
186+ schema . fields [ 0 ] . styleClasses = [ "classB" , "classC" ] ;
187+
188+ expect ( formElement . classes ( ) ) . to . include ( "classB" ) ;
189+ expect ( formElement . classes ( ) ) . to . include ( "classC" ) ;
189190 } ) ;
190191 } ) ;
191192 // TODO: should be moved to formGroup
0 commit comments