@@ -125,39 +125,38 @@ describe('uiSelect2', function () {
125
125
var element = compile ( '<select ui-select2="{allowClear:true}" ng-model="foo"><option>First</option><option>Second</option></select>' ) ;
126
126
expect ( element . select2 ( 'val' ) ) . toBe ( 'First' ) ;
127
127
scope . $apply ( 'foo = false' ) ;
128
- expect ( element . select2 ( 'val' ) ) . toBe ( scope . foo ) ;
129
- expect ( element . select2 ( 'val' ) ) . toBe ( false ) ;
128
+ expect ( element . select2 ( 'val' ) ) . toBe ( null ) ;
129
+ scope . $apply ( 'foo = "Second"' ) ;
130
130
scope . $apply ( 'foo = null' ) ;
131
- expect ( element . select2 ( 'val' ) ) . toBe ( scope . foo ) ;
132
131
expect ( element . select2 ( 'val' ) ) . toBe ( null ) ;
132
+ scope . $apply ( 'foo = "Second"' ) ;
133
133
scope . $apply ( 'foo = undefined' ) ;
134
- expect ( element . select2 ( 'val' ) ) . toBe ( scope . foo ) ;
135
- expect ( element . select2 ( 'val' ) ) . toBe ( undefined ) ;
134
+ expect ( element . select2 ( 'val' ) ) . toBe ( null ) ;
136
135
} ) ;
137
136
} ) ;
138
137
describe ( 'for multiple select' , function ( ) {
139
138
it ( 'should set select2 to multiple value' , function ( ) {
140
- scope . foo = 'First' ;
139
+ scope . foo = [ 'First' ] ;
141
140
var element = compile ( '<select ui-select2="{allowClear:true}" multiple ng-model="foo"><option>First</option><option>Second</option><option>Third</option></select>' ) ;
142
141
expect ( element . select2 ( 'val' ) ) . toEqual ( [ 'First' ] ) ;
143
142
scope . $apply ( 'foo = ["Second"]' ) ;
144
143
expect ( element . select2 ( 'val' ) ) . toEqual ( [ 'Second' ] ) ;
145
144
scope . $apply ( 'foo = ["Second","Third"]' ) ;
146
145
expect ( element . select2 ( 'val' ) ) . toEqual ( [ 'Second' , 'Third' ] ) ;
147
146
} ) ;
148
- it ( 'should set select2 to the value for multiples' , function ( ) {
149
- scope . foo = 'First' ;
150
- var element = compile ( '<select ui-select2 multiple ng-model="foo"><option>First</option><option>Second</option><option>Third</option></select>' ) ;
151
- expect ( element . select2 ( 'val' ) ) . toEqual ( [ 'First' ] ) ;
147
+ it ( 'should handle falsey values' , function ( ) {
148
+ scope . foo = [ 'First' ] ;
149
+ var element = compile ( '<select ui-select2="{allowClear:true}" multiple ng-model="foo"><option>First</option><option>Second</option><option>Third</option></select>' ) ;
150
+ expect ( element . val ( ) ) . toEqual ( [ 'First' ] ) ;
151
+ scope . $apply ( 'foo = ["Second"]' ) ;
152
152
scope . $apply ( 'foo = false' ) ;
153
- expect ( element . select2 ( 'val' ) ) . toBe ( scope . foo ) ;
154
- expect ( element . select2 ( 'val' ) ) . toBe ( false ) ;
153
+ expect ( element . select2 ( 'val' ) ) . toEqual ( [ ] ) ;
154
+ scope . $apply ( 'foo = ["Second"]' ) ;
155
155
scope . $apply ( 'foo = null' ) ;
156
- expect ( element . select2 ( 'val' ) ) . toBe ( scope . foo ) ;
157
- expect ( element . select2 ( 'val' ) ) . toBe ( null ) ;
156
+ expect ( element . select2 ( 'val' ) ) . toEqual ( [ ] ) ;
157
+ scope . $apply ( 'foo = ["Second"]' ) ;
158
158
scope . $apply ( 'foo = undefined' ) ;
159
- expect ( element . select2 ( 'val' ) ) . toBe ( scope . foo ) ;
160
- expect ( element . select2 ( 'val' ) ) . toBe ( undefined ) ;
159
+ expect ( element . select2 ( 'val' ) ) . toEqual ( [ ] ) ;
161
160
} ) ;
162
161
} ) ;
163
162
} ) ;
@@ -182,8 +181,8 @@ describe('uiSelect2', function () {
182
181
scope . items = [ 'first' , 'second' , 'third' ] ;
183
182
scope . foo = 'fourth' ;
184
183
var element = compile ( '<select ui-select2 ng-model="foo"><option ng-repeat="item in items">{{item}}</option></select>' ) ;
185
- expect ( element . select2 ( 'val' ) ) . toNotBe ( 'fourth' ) ;
186
- scope . $apply ( 'items=["fourth"]' ) ;
184
+ expect ( element . select2 ( 'val' ) ) . toBe ( null ) ;
185
+ scope . $apply ( 'foo="fourth"; items=["fourth"]' ) ;
187
186
$timeout . flush ( ) ;
188
187
expect ( element . select2 ( 'val' ) ) . toBe ( 'fourth' ) ;
189
188
} ) ;
0 commit comments