@@ -59,12 +59,41 @@ suite('QuickInput', () => {
59
59
} ) ;
60
60
61
61
teardown ( ( ) => {
62
- quickpick . dispose ( ) ;
62
+ quickpick ? .dispose ( ) ;
63
63
controller . dispose ( ) ;
64
64
document . body . removeChild ( fixture ) ;
65
65
} ) ;
66
66
67
- test ( 'onDidChangeValue gets triggered when .value is set' , async ( ) => {
67
+ test ( 'pick - basecase' , async ( ) => {
68
+ const item = { label : 'foo' } ;
69
+ const pickPromise = controller . pick ( [ item , { label : 'bar' } ] ) ;
70
+ // wait a bit to let the pick get set up.
71
+ await wait ( 200 ) ;
72
+ controller . accept ( ) ;
73
+ const pick = await pickPromise ;
74
+ assert . strictEqual ( pick , item ) ;
75
+ } ) ;
76
+
77
+ test ( 'pick - activeItem is honored' , async ( ) => {
78
+ const item = { label : 'foo' } ;
79
+ const pickPromise = controller . pick ( [ { label : 'bar' } , item ] , { activeItem : item } ) ;
80
+ // wait a bit to let the pick get set up.
81
+ await wait ( 200 ) ;
82
+ controller . accept ( ) ;
83
+ const pick = await pickPromise ;
84
+ assert . strictEqual ( pick , item ) ;
85
+ } ) ;
86
+
87
+ test ( 'input - basecase' , async ( ) => {
88
+ const inputPromise = controller . input ( { value : 'foo' } ) ;
89
+ // wait a bit to let the pick get set up.
90
+ await wait ( 200 ) ;
91
+ controller . accept ( ) ;
92
+ const value = await inputPromise ;
93
+ assert . strictEqual ( value , 'foo' ) ;
94
+ } ) ;
95
+
96
+ test ( 'onDidChangeValue - gets triggered when .value is set' , async ( ) => {
68
97
quickpick = controller . createQuickPick ( ) ;
69
98
70
99
let value : string | undefined = undefined ;
@@ -82,7 +111,7 @@ suite('QuickInput', () => {
82
111
}
83
112
} ) ;
84
113
85
- test ( 'keepScrollPosition works with activeItems' , async ( ) => {
114
+ test ( 'keepScrollPosition - works with activeItems' , async ( ) => {
86
115
quickpick = controller . createQuickPick ( ) ;
87
116
88
117
const items = [ ] ;
@@ -107,7 +136,7 @@ suite('QuickInput', () => {
107
136
assert . strictEqual ( getScrollTop ( ) , 0 ) ;
108
137
} ) ;
109
138
110
- test ( 'keepScrollPosition works with items' , async ( ) => {
139
+ test ( 'keepScrollPosition - works with items' , async ( ) => {
111
140
quickpick = controller . createQuickPick ( ) ;
112
141
113
142
const items = [ ] ;
@@ -130,4 +159,28 @@ suite('QuickInput', () => {
130
159
quickpick . items = items ;
131
160
assert . strictEqual ( getScrollTop ( ) , 0 ) ;
132
161
} ) ;
162
+
163
+ test ( 'selectedItems - verify previous selectedItems does not hang over to next set of items' , async ( ) => {
164
+ quickpick = controller . createQuickPick ( ) ;
165
+ quickpick . items = [ { label : 'step 1' } ] ;
166
+ quickpick . show ( ) ;
167
+
168
+ void ( await new Promise < void > ( resolve => {
169
+ quickpick . onDidAccept ( ( ) => {
170
+ console . log ( quickpick . selectedItems . map ( i => i . label ) . join ( ', ' ) ) ;
171
+ quickpick . canSelectMany = true ;
172
+ quickpick . items = [ { label : 'a' } , { label : 'b' } , { label : 'c' } ] ;
173
+ resolve ( ) ;
174
+ } ) ;
175
+
176
+ // accept 'step 1'
177
+ controller . accept ( ) ;
178
+ } ) ) ;
179
+
180
+ // accept in multi-select
181
+ controller . accept ( ) ;
182
+
183
+ // Since we don't select any items, the selected items should be empty
184
+ assert . strictEqual ( quickpick . selectedItems . length , 0 ) ;
185
+ } ) ;
133
186
} ) ;
0 commit comments