File tree 4 files changed +81
-1
lines changed
4 files changed +81
-1
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ module.exports = {
32
32
user . role = fakerator . random . arrayElement ( roles ) . id ;
33
33
//user.mobile = fakerator.phone.phoneNumber();
34
34
user . avatar = fakerator . internet . avatar ( ) ;
35
+ user . sex = fakerator . random . arrayElement ( [ "male" , "female" ] ) ;
35
36
36
37
user . skills = fakerator . utimes ( fakerator . random . arrayElement , 2 , skills ) ;
37
38
Original file line number Diff line number Diff line change @@ -234,6 +234,18 @@ module.exports = {
234
234
235
235
} ,
236
236
237
+ {
238
+ type : "switch" ,
239
+ label : "Sex (switch field)" ,
240
+ model : "sex" ,
241
+ multi : true ,
242
+ default : "male" ,
243
+ textOn : "Female" ,
244
+ textOff : "Male" ,
245
+ valueOn : "female" ,
246
+ valueOff : "male"
247
+ } ,
248
+
237
249
{
238
250
type : "slider" ,
239
251
label : "Rank (slider field)" ,
Original file line number Diff line number Diff line change 9
9
import abstractField from " ./abstractField" ;
10
10
11
11
export default {
12
- mixins: [ abstractField ]
12
+ mixins: [ abstractField ],
13
+
14
+ methods: {
15
+
16
+ formatValueToField (value ) {
17
+ if (value != null && this .schema .valueOn )
18
+ return value == this .schema .valueOn ;
19
+
20
+ return value;
21
+ },
22
+
23
+ formatValueToModel (value ) {
24
+ if (value != null && this .schema .valueOn ) {
25
+ if (value)
26
+ return this .schema .valueOn ;
27
+ else
28
+ return this .schema .valueOff ;
29
+ }
30
+
31
+ return value;
32
+ }
33
+ }
13
34
};
14
35
</script >
15
36
Original file line number Diff line number Diff line change @@ -102,4 +102,50 @@ describe("FieldSwitch.vue", () => {
102
102
103
103
} ) ;
104
104
105
+ describe ( "check template with custom On/Off values" , ( ) => {
106
+ let schema = {
107
+ type : "switch" ,
108
+ model : "sex" ,
109
+ textOn : "Female" ,
110
+ textOff : "Male" ,
111
+ valueOn : "female" ,
112
+ valueOff : "male"
113
+ } ;
114
+ let model = { sex : "female" } ;
115
+ let input ;
116
+
117
+ before ( ( ) => {
118
+ createField ( schema , model , false ) ;
119
+ input = el . querySelector ( "input" ) ;
120
+ } ) ;
121
+
122
+ it ( "check input value" , ( done ) => {
123
+ vm . $nextTick ( ( ) => {
124
+ expect ( input . checked ) . to . be . true ;
125
+ done ( ) ;
126
+ } ) ;
127
+ } ) ;
128
+
129
+ it ( "input value should be the model value after changed" , ( done ) => {
130
+ model . sex = "male" ;
131
+ vm . $nextTick ( ( ) => {
132
+ expect ( input . checked ) . to . be . false ;
133
+ done ( ) ;
134
+ } ) ;
135
+
136
+ } ) ;
137
+
138
+ it ( "model value should be the input value if changed" , ( done ) => {
139
+ input . checked = true ;
140
+ trigger ( input , "change" ) ;
141
+
142
+ vm . $nextTick ( ( ) => {
143
+ expect ( model . sex ) . to . be . equal ( "female" ) ;
144
+ done ( ) ;
145
+ } ) ;
146
+
147
+ } ) ;
148
+
149
+ } ) ;
150
+
105
151
} ) ;
You can’t perform that action at this time.
0 commit comments