File tree Expand file tree Collapse file tree 2 files changed +25
-8
lines changed
test/unit/specs/directives Expand file tree Collapse file tree 2 files changed +25
-8
lines changed Original file line number Diff line number Diff line change @@ -34,7 +34,7 @@ module.exports = {
34
34
while ( i -- ) {
35
35
option = options [ i ]
36
36
option . selected = multi
37
- ? value . indexOf ( option . value ) > - 1
37
+ ? indexOf ( value , option . value ) > - 1
38
38
: value == option . value
39
39
}
40
40
} ,
@@ -147,4 +147,21 @@ function filterSelected (op) {
147
147
148
148
function getOptionValue ( op ) {
149
149
return op . value || op . text
150
+ }
151
+
152
+ /**
153
+ * Native Array.indexOf uses strict equal, but in this
154
+ * case we need to match string/numbers with soft equal.
155
+ *
156
+ * @param {Array } arr
157
+ * @param {* } val
158
+ */
159
+
160
+ function indexOf ( arr , val ) {
161
+ /* jshint eqeqeq: false */
162
+ var i = arr . length
163
+ while ( i -- ) {
164
+ if ( arr [ i ] == val ) return i
165
+ }
166
+ return - 1
150
167
}
Original file line number Diff line number Diff line change @@ -161,29 +161,29 @@ if (_.inBrowser) {
161
161
var vm = new Vue ( {
162
162
el : el ,
163
163
data : {
164
- test : [ 'b' ]
164
+ test : [ 2 ] // test number soft equal
165
165
} ,
166
166
template :
167
167
'<select v-model="test" multiple>' +
168
- '<option>a </option>' +
169
- '<option>b </option>' +
170
- '<option>c </option>' +
168
+ '<option>1 </option>' +
169
+ '<option>2 </option>' +
170
+ '<option>3 </option>' +
171
171
'</select>'
172
172
} )
173
173
var opts = el . firstChild . options
174
174
expect ( opts [ 0 ] . selected ) . toBe ( false )
175
175
expect ( opts [ 1 ] . selected ) . toBe ( true )
176
176
expect ( opts [ 2 ] . selected ) . toBe ( false )
177
- vm . test = [ 'a' , 'c' ]
177
+ vm . test = [ 1 , '3' ] // mix of number/string
178
178
_ . nextTick ( function ( ) {
179
179
expect ( opts [ 0 ] . selected ) . toBe ( true )
180
180
expect ( opts [ 1 ] . selected ) . toBe ( false )
181
181
expect ( opts [ 2 ] . selected ) . toBe ( true )
182
182
opts [ 0 ] . selected = false
183
183
opts [ 1 ] . selected = true
184
184
trigger ( el . firstChild , 'change' )
185
- expect ( vm . test [ 0 ] ) . toBe ( 'b ' )
186
- expect ( vm . test [ 1 ] ) . toBe ( 'c ' )
185
+ expect ( vm . test [ 0 ] ) . toBe ( '2 ' )
186
+ expect ( vm . test [ 1 ] ) . toBe ( '3 ' )
187
187
done ( )
188
188
} )
189
189
} )
You can’t perform that action at this time.
0 commit comments