@@ -72,33 +72,22 @@ describe("VueFormGenerator.vue", () => {
72
72
} ) ;
73
73
74
74
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 ;
92
78
93
79
beforeEach ( ( ) => {
94
80
// Reset schema value
95
81
schema = {
96
82
fields : [
97
83
{
98
84
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 : "" ,
102
91
label : "Name" ,
103
92
model : "name" ,
104
93
readonly : false ,
@@ -109,83 +98,95 @@ describe("VueFormGenerator.vue", () => {
109
98
]
110
99
} ;
111
100
createFormGenerator ( { schema } ) ;
112
- group = wrapper . find ( ".form-element" ) ;
101
+ formGenerator = wrapper . find ( { name : "formGenerator" } ) ;
102
+ formElement = wrapper . find ( { name : "form-element" } ) ;
113
103
} ) ;
114
104
115
105
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" ) ;
119
109
} ) ;
120
110
121
111
it ( "should be featured class" , ( ) => {
122
112
wrapper . vm . schema . fields [ 0 ] . featured = true ;
123
113
124
- expect ( group . classes ( ) ) . to . include ( "featured" ) ;
114
+ expect ( formElement . classes ( ) ) . to . include ( "featured" ) ;
125
115
} ) ;
126
116
127
117
it ( "should be readonly class" , ( ) => {
128
118
wrapper . vm . schema . fields [ 0 ] . readonly = true ;
129
119
130
- expect ( group . classes ( ) ) . to . include ( "readonly" ) ;
120
+ expect ( formElement . classes ( ) ) . to . include ( "readonly" ) ;
131
121
} ) ;
132
122
133
123
it ( "should be disabled class" , ( ) => {
134
124
wrapper . vm . schema . fields [ 0 ] . disabled = true ;
135
125
136
- expect ( group . classes ( ) ) . to . include ( "disabled" ) ;
126
+ expect ( formElement . classes ( ) ) . to . include ( "disabled" ) ;
137
127
} ) ;
138
128
139
129
it ( "should be required class" , ( ) => {
140
130
wrapper . vm . schema . fields [ 0 ] . required = true ;
141
131
142
- expect ( group . classes ( ) ) . to . include ( "required" ) ;
132
+ expect ( formElement . classes ( ) ) . to . include ( "required" ) ;
143
133
} ) ;
144
134
145
135
it ( "should be error class" , ( ) => {
146
- const formElement = wrapper . find ( { name : "form-element" } ) ;
147
136
formElement . vm . onChildValidated ( [ "Validation error!" ] ) ;
148
- expect ( group . classes ( ) ) . to . include ( "error" ) ;
137
+ expect ( formElement . classes ( ) ) . to . include ( "error" ) ;
149
138
} ) ;
150
139
151
140
describe ( "custom validation classes" , ( ) => {
141
+ let formGenerator ;
142
+ let formElement ;
152
143
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
+ } ;
154
149
createFormGenerator ( {
155
150
schema,
156
151
options : options
157
152
} ) ;
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" ) ;
159
159
} ) ;
160
160
161
161
it ( "error class" , ( ) => {
162
- const formElement = wrapper . find ( { name : "form-element" } ) ;
163
162
formElement . vm . onChildValidated ( [ "Validation error!" ] ) ;
164
163
165
- expect ( group . classes ( ) ) . to . include ( "has-error" ) ;
164
+ expect ( formElement . classes ( ) ) . to . include ( "has-error" ) ;
166
165
} ) ;
167
166
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
+ ) ;
175
175
} ) ;
176
176
} ) ;
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" ;
180
177
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" ) ;
182
183
} ) ;
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" ] ;
186
184
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" ) ;
189
190
} ) ;
190
191
} ) ;
191
192
// TODO: should be moved to formGroup
0 commit comments