Do not clear selection in single-select case (fixes #57850)

This commit is contained in:
Christof Marti
2018-09-06 11:52:36 +02:00
parent 94c4825153
commit a6626a8d90
3 changed files with 38 additions and 9 deletions

View File

@@ -16,6 +16,7 @@ interface QuickPickExpected {
acceptedItems: {
active: string[][];
selection: string[][];
dispose: boolean[];
};
}
@@ -36,7 +37,8 @@ suite('window namespace tests', function () {
selectionItems: [['zwei']],
acceptedItems: {
active: [['zwei']],
selection: [['zwei']]
selection: [['zwei']],
dispose: [true]
},
}, (err?: any) => done(err));
quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label }));
@@ -61,7 +63,8 @@ suite('window namespace tests', function () {
selectionItems: [['zwei']],
acceptedItems: {
active: [['zwei']],
selection: [['zwei']]
selection: [['zwei']],
dispose: [true]
},
}, (err?: any) => done(err));
quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label }));
@@ -86,7 +89,8 @@ suite('window namespace tests', function () {
selectionItems: [['eins'], ['eins', 'zwei']],
acceptedItems: {
active: [['zwei']],
selection: [['eins', 'zwei']]
selection: [['eins', 'zwei']],
dispose: [true]
},
}, (err?: any) => done(err));
quickPick.canSelectMany = true;
@@ -102,6 +106,31 @@ suite('window namespace tests', function () {
})()
.catch(err => done(err));
});
test('createQuickPick, selection events', function (_done) {
let done = (err?: any) => {
done = () => {};
_done(err);
};
const quickPick = createQuickPick({
events: ['active', 'selection', 'accept', 'selection', 'accept', 'hide'],
activeItems: [['eins']],
selectionItems: [['zwei'], ['drei']],
acceptedItems: {
active: [['eins'], ['eins']],
selection: [['zwei'], ['drei']],
dispose: [false, true]
},
}, (err?: any) => done(err));
quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label }));
quickPick.show();
quickPick.selectedItems = [quickPick.items[1]];
setTimeout(() => {
quickPick.selectedItems = [quickPick.items[2]];
}, 0);
});
});
});
@@ -134,7 +163,9 @@ function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void)
assert.deepEqual(quickPick.activeItems.map(item => item.label), expectedActive);
const expectedSelection = expected.acceptedItems.selection.shift();
assert.deepEqual(quickPick.selectedItems.map(item => item.label), expectedSelection);
quickPick.dispose();
if (expected.acceptedItems.dispose.shift()) {
quickPick.dispose();
}
} catch (err) {
done(err);
}