@@ -73,12 +73,42 @@ describe("Select Plugin", function () {
73
73
74
74
setTimeout ( function ( ) {
75
75
expect ( multipleDropdown ) . toBeHidden ( 'Should be hidden after choosing item.' ) ;
76
+ expect ( browserSelect . val ( ) ) . toEqual ( [ '1' , '2' , '3' ] , 'Actual select should have correct selected values.' ) ;
76
77
expect ( multipleInput . val ( ) ) . toEqual ( secondOption [ 0 ] . innerText + ', ' + thirdOption [ 0 ] . innerText + ', ' + firstOption [ 0 ] . innerText , 'Value should equal chosen multiple options.' ) ;
77
78
done ( ) ;
78
79
} , 400 ) ;
79
80
} , 400 ) ;
80
81
} ) ;
81
82
83
+ it ( "should open dropdown and deselect multiple options" , function ( done ) {
84
+ multipleInput = browserSelect . parent ( ) . find ( 'input.select-dropdown' ) ;
85
+ multipleDropdown = browserSelect . parent ( ) . find ( 'ul.select-dropdown' ) ;
86
+
87
+ expect ( multipleInput ) . toExist ( 'Should dynamically generate select dropdown structure.' ) ;
88
+ expect ( multipleDropdown ) . toExist ( 'Should dynamically generate select dropdown structure.' ) ;
89
+ expect ( multipleInput ) . toBeVisible ( 'Should be hidden before dropdown is opened.' ) ;
90
+ expect ( multipleDropdown ) . toBeHidden ( 'Should be hidden before dropdown is opened.' ) ;
91
+
92
+ multipleInput . click ( ) ;
93
+
94
+ setTimeout ( function ( ) {
95
+ expect ( multipleDropdown ) . toBeVisible ( 'Should be visible after opening.' ) ;
96
+ var disabledOption = multipleDropdown . find ( 'li.disabled' ) ;
97
+ var secondOption = multipleDropdown . find ( 'li:not(.disabled)' ) . eq ( 1 ) ;
98
+ var thirdOption = multipleDropdown . find ( 'li:not(.disabled)' ) . eq ( 2 ) ;
99
+ secondOption . click ( ) ;
100
+ thirdOption . click ( ) ;
101
+ $ ( 'body' ) . click ( ) ;
102
+
103
+ setTimeout ( function ( ) {
104
+ expect ( multipleDropdown ) . toBeHidden ( 'Should be hidden after choosing item.' ) ;
105
+ expect ( browserSelect . val ( ) ) . toEqual ( null , 'Actual select element should be empty because none chosen.' ) ;
106
+ expect ( multipleInput . val ( ) ) . toEqual ( disabledOption [ 0 ] . innerText , 'Value should equal default because none chosen.' ) ;
107
+ done ( ) ;
108
+ } , 400 ) ;
109
+ } , 400 ) ;
110
+ } ) ;
111
+
82
112
it ( "should have multiple pre-selected values" , function ( ) {
83
113
multipleInput = browserSelect . parent ( ) . find ( 'input.select-dropdown' ) ;
84
114
multipleDropdown = browserSelect . parent ( ) . find ( 'ul.select-dropdown' ) ;
0 commit comments