Revert "Have setting the value trigger the filter. Fixes #137279"

This reverts commit c1c103dee7.
This commit is contained in:
Tyler Leonhardt 2021-11-24 15:08:35 -08:00
parent 60c59ff641
commit 26fe37ca3d
No known key found for this signature in database
GPG key ID: 1BC2B6244363E77E
3 changed files with 1 additions and 153 deletions

View file

@ -11,7 +11,6 @@ interface QuickPickExpected {
events: string[];
activeItems: string[][];
selectionItems: string[][];
values: string[];
acceptedItems: {
active: string[][];
selection: string[][];
@ -19,15 +18,6 @@ interface QuickPickExpected {
};
}
interface InputBoxExpected {
events: string[];
values: string[];
accepted: {
values: string[];
dispose: boolean[];
};
}
suite('vscode API - quick input', function () {
teardown(async function () {
@ -45,7 +35,6 @@ suite('vscode API - quick input', function () {
events: ['active', 'active', 'selection', 'accept', 'hide'],
activeItems: [['eins'], ['zwei']],
selectionItems: [['zwei']],
values: [],
acceptedItems: {
active: [['zwei']],
selection: [['zwei']],
@ -72,7 +61,6 @@ suite('vscode API - quick input', function () {
events: ['active', 'selection', 'accept', 'hide'],
activeItems: [['zwei']],
selectionItems: [['zwei']],
values: [],
acceptedItems: {
active: [['zwei']],
selection: [['zwei']],
@ -99,7 +87,6 @@ suite('vscode API - quick input', function () {
events: ['active', 'selection', 'active', 'selection', 'accept', 'hide'],
activeItems: [['eins'], ['zwei']],
selectionItems: [['eins'], ['eins', 'zwei']],
values: [],
acceptedItems: {
active: [['zwei']],
selection: [['eins', 'zwei']],
@ -130,7 +117,6 @@ suite('vscode API - quick input', function () {
events: ['active', 'selection', 'accept', 'selection', 'accept', 'hide'],
activeItems: [['eins']],
selectionItems: [['zwei'], ['drei']],
values: [],
acceptedItems: {
active: [['eins'], ['eins']],
selection: [['zwei'], ['drei']],
@ -156,7 +142,6 @@ suite('vscode API - quick input', function () {
events: ['active', 'selection', 'accept', 'active', 'selection', 'active', 'selection', 'accept', 'hide'],
activeItems: [['eins'], [], ['drei']],
selectionItems: [['eins'], [], ['drei']],
values: [],
acceptedItems: {
active: [['eins'], ['drei']],
selection: [['eins'], ['drei']],
@ -178,40 +163,6 @@ suite('vscode API - quick input', function () {
.catch(err => done(err));
});
// NOTE: This test is currently accepting the wrong behavior of #135971
// so that we can test the fix for #137279.
test('createQuickPick, onDidChangeValue gets triggered', function (_done) {
let done = (err?: any) => {
done = () => { };
_done(err);
};
const quickPick = createQuickPick({
events: ['active', 'active', 'active', 'active', 'value', 'active', 'active', 'value', 'hide'],
activeItems: [['eins'], ['zwei'], [], ['zwei'], [], ['eins']],
selectionItems: [],
values: ['zwei', ''],
acceptedItems: {
active: [],
selection: [],
dispose: []
},
}, (err?: any) => done(err));
quickPick.items = ['eins', 'zwei'].map(label => ({ label }));
quickPick.show();
(async () => {
quickPick.value = 'zwei';
await timeout(async () => {
quickPick.value = '';
await timeout(async () => {
quickPick.hide();
}, 0);
}, 0);
})()
.catch(err => done(err));
});
test('createQuickPick, dispose in onDidHide', function (_done) {
let done = (err?: any) => {
done = () => { };
@ -297,34 +248,6 @@ suite('vscode API - quick input', function () {
quickPick.hide();
await waitForHide(quickPick);
});
test('createInputBox, onDidChangeValue gets triggered', function (_done) {
let done = (err?: any) => {
done = () => { };
_done(err);
};
const quickPick = createInputBox({
events: ['value', 'accept', 'hide'],
values: ['zwei'],
accepted: {
values: ['zwei'],
dispose: [true]
},
}, (err?: any) => done(err));
quickPick.show();
(async () => {
quickPick.value = 'zwei';
await timeout(async () => {
await commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem');
await timeout(async () => {
quickPick.hide();
}, 0);
}, 0);
})()
.catch(err => done(err));
});
});
function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void, record = false) {
@ -393,78 +316,9 @@ function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void,
}
});
quickPick.onDidChangeValue(value => {
if (record) {
console.log('value');
return;
}
try {
eventIndex++;
assert.strictEqual('value', expected.events.shift(), `onDidChangeValue (event ${eventIndex})`);
const expectedValue = expected.values.shift();
assert.deepStrictEqual(value, expectedValue, `onDidChangeValue event value (event ${eventIndex})`);
} catch (err) {
done(err);
}
});
return quickPick;
}
function createInputBox(expected: InputBoxExpected, done: (err?: any) => void, record = false) {
const inputBox = window.createInputBox();
let eventIndex = -1;
inputBox.onDidAccept(() => {
if (record) {
console.log('accept');
return;
}
try {
eventIndex++;
assert.strictEqual('accept', expected.events.shift(), `onDidAccept (event ${eventIndex})`);
const expectedValue = expected.accepted.values.shift();
assert.deepStrictEqual(inputBox.value, expectedValue, `onDidAccept event value (event ${eventIndex})`);
if (expected.accepted.dispose.shift()) {
inputBox.dispose();
}
} catch (err) {
done(err);
}
});
inputBox.onDidHide(() => {
if (record) {
console.log('hide');
done();
return;
}
try {
assert.strictEqual('hide', expected.events.shift());
done();
} catch (err) {
done(err);
}
});
inputBox.onDidChangeValue(value => {
if (record) {
console.log('value');
return;
}
try {
eventIndex++;
assert.strictEqual('value', expected.events.shift(), `onDidChangeValue (event ${eventIndex})`);
const expectedValue = expected.values.shift();
assert.deepStrictEqual(value, expectedValue, `onDidChangeValue event value (event ${eventIndex})`);
} catch (err) {
done(err);
}
});
return inputBox;
}
async function timeout<T>(run: () => Promise<T> | T, ms: number): Promise<T> {
return new Promise<T>(resolve => setTimeout(() => resolve(run()), ms));
}

View file

@ -490,11 +490,6 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
if (this._value !== value) {
this._value = value || '';
this.update();
// TODO: Remove this duplicate code and have the updating of the input box handle this.
const didFilter = this.ui.list.filter(this.filterValue(this.ui.inputBox.value));
if (didFilter) {
this.trySelectFirst();
}
this.onDidChangeValueEmitter.fire(this._value);
}
}

View file

@ -66,8 +66,7 @@ suite('QuickAccess', () => {
provide(picker: IQuickPick<IQuickPickItem>, token: CancellationToken): IDisposable {
assert.ok(picker);
provider2Called = true;
token.onCancellationRequested(() =>
provider2Canceled = true);
token.onCancellationRequested(() => provider2Canceled = true);
return toDisposable(() => provider2Disposed = true);
}