Skip to content

Commit 34e6f94

Browse files
committed
Add try catch logging to parameter hints in tests
1 parent abca16d commit 34e6f94

1 file changed

Lines changed: 153 additions & 118 deletions

File tree

src/vs/editor/contrib/parameterHints/test/parameterHintsModel.test.ts

Lines changed: 153 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -96,24 +96,29 @@ suite('ParameterHintsModel', () => {
9696

9797
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
9898
++invokeCount;
99-
if (invokeCount === 1) {
100-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
101-
assert.strictEqual(context.triggerCharacter, triggerChar);
102-
assert.strictEqual(context.isRetrigger, false);
103-
assert.strictEqual(context.activeSignatureHelp, undefined);
104-
105-
// Retrigger
106-
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
107-
} else {
108-
assert.strictEqual(invokeCount, 2);
109-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
110-
assert.strictEqual(context.isRetrigger, true);
111-
assert.strictEqual(context.triggerCharacter, triggerChar);
112-
assert.strictEqual(context.activeSignatureHelp, emptySigHelp);
113-
114-
done();
99+
try {
100+
if (invokeCount === 1) {
101+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
102+
assert.strictEqual(context.triggerCharacter, triggerChar);
103+
assert.strictEqual(context.isRetrigger, false);
104+
assert.strictEqual(context.activeSignatureHelp, undefined);
105+
106+
// Retrigger
107+
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
108+
} else {
109+
assert.strictEqual(invokeCount, 2);
110+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
111+
assert.strictEqual(context.isRetrigger, true);
112+
assert.strictEqual(context.triggerCharacter, triggerChar);
113+
assert.strictEqual(context.activeSignatureHelp, emptySigHelp);
114+
115+
done();
116+
}
117+
return emptySigHelpResult;
118+
} catch (err) {
119+
console.error(err);
120+
throw err;
115121
}
116-
return emptySigHelpResult;
117122
}
118123
}));
119124

@@ -133,25 +138,30 @@ suite('ParameterHintsModel', () => {
133138
signatureHelpRetriggerCharacters = [];
134139

135140
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
136-
++invokeCount;
137-
if (invokeCount === 1) {
138-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
139-
assert.strictEqual(context.triggerCharacter, triggerChar);
140-
assert.strictEqual(context.isRetrigger, false);
141-
assert.strictEqual(context.activeSignatureHelp, undefined);
142-
143-
// Cancel and retrigger
144-
hintModel.cancel();
145-
editor.trigger('keyboard', Handler.Type, { text: triggerChar });
146-
} else {
147-
assert.strictEqual(invokeCount, 2);
148-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
149-
assert.strictEqual(context.triggerCharacter, triggerChar);
150-
assert.strictEqual(context.isRetrigger, true);
151-
assert.strictEqual(context.activeSignatureHelp, undefined);
152-
done();
141+
try {
142+
++invokeCount;
143+
if (invokeCount === 1) {
144+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
145+
assert.strictEqual(context.triggerCharacter, triggerChar);
146+
assert.strictEqual(context.isRetrigger, false);
147+
assert.strictEqual(context.activeSignatureHelp, undefined);
148+
149+
// Cancel and retrigger
150+
hintModel.cancel();
151+
editor.trigger('keyboard', Handler.Type, { text: triggerChar });
152+
} else {
153+
assert.strictEqual(invokeCount, 2);
154+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
155+
assert.strictEqual(context.triggerCharacter, triggerChar);
156+
assert.strictEqual(context.isRetrigger, true);
157+
assert.strictEqual(context.activeSignatureHelp, undefined);
158+
done();
159+
}
160+
return emptySigHelpResult;
161+
} catch (err) {
162+
console.error(err);
163+
throw err;
153164
}
154-
return emptySigHelpResult;
155165
}
156166
}));
157167

@@ -168,19 +178,24 @@ suite('ParameterHintsModel', () => {
168178
signatureHelpRetriggerCharacters = [];
169179

170180
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext) {
171-
++invokeCount;
172-
173-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
174-
assert.strictEqual(context.isRetrigger, false);
175-
assert.strictEqual(context.triggerCharacter, 'c');
181+
try {
182+
++invokeCount;
176183

177-
// Give some time to allow for later triggers
178-
setTimeout(() => {
179-
assert.strictEqual(invokeCount, 1);
184+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
185+
assert.strictEqual(context.isRetrigger, false);
186+
assert.strictEqual(context.triggerCharacter, 'c');
180187

181-
done();
182-
}, 50);
183-
return undefined;
188+
// Give some time to allow for later triggers
189+
setTimeout(() => {
190+
assert.strictEqual(invokeCount, 1);
191+
192+
done();
193+
}, 50);
194+
return undefined;
195+
} catch (err) {
196+
console.error(err);
197+
throw err;
198+
}
184199
}
185200
}));
186201

@@ -199,23 +214,28 @@ suite('ParameterHintsModel', () => {
199214
signatureHelpRetriggerCharacters = [];
200215

201216
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
202-
++invokeCount;
203-
if (invokeCount === 1) {
204-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
205-
assert.strictEqual(context.triggerCharacter, 'a');
206-
207-
// retrigger after delay for widget to show up
208-
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: 'b' }), 50);
209-
} else if (invokeCount === 2) {
210-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
211-
assert.ok(context.isRetrigger);
212-
assert.strictEqual(context.triggerCharacter, 'b');
213-
done();
214-
} else {
215-
assert.fail('Unexpected invoke');
217+
try {
218+
++invokeCount;
219+
if (invokeCount === 1) {
220+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
221+
assert.strictEqual(context.triggerCharacter, 'a');
222+
223+
// retrigger after delay for widget to show up
224+
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: 'b' }), 50);
225+
} else if (invokeCount === 2) {
226+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
227+
assert.ok(context.isRetrigger);
228+
assert.strictEqual(context.triggerCharacter, 'b');
229+
done();
230+
} else {
231+
assert.fail('Unexpected invoke');
232+
}
233+
234+
return emptySigHelpResult;
235+
} catch (err) {
236+
console.error(err);
237+
throw err;
216238
}
217-
218-
return emptySigHelpResult;
219239
}
220240
}));
221241

@@ -234,29 +254,34 @@ suite('ParameterHintsModel', () => {
234254

235255

236256
provideSignatureHelp(_model: ITextModel, _position: Position, token: CancellationToken): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
237-
const count = invokeCount++;
238-
token.onCancellationRequested(() => { didRequestCancellationOf = count; });
239-
240-
// retrigger on first request
241-
if (count === 0) {
242-
hintsModel.trigger({ triggerKind: modes.SignatureHelpTriggerKind.Invoke }, 0);
257+
try {
258+
const count = invokeCount++;
259+
token.onCancellationRequested(() => { didRequestCancellationOf = count; });
260+
261+
// retrigger on first request
262+
if (count === 0) {
263+
hintsModel.trigger({ triggerKind: modes.SignatureHelpTriggerKind.Invoke }, 0);
264+
}
265+
266+
return new Promise<modes.SignatureHelpResult>(resolve => {
267+
setTimeout(() => {
268+
resolve({
269+
value: {
270+
signatures: [{
271+
label: '' + count,
272+
parameters: []
273+
}],
274+
activeParameter: 0,
275+
activeSignature: 0
276+
},
277+
dispose: () => { }
278+
});
279+
}, 100);
280+
});
281+
} catch (err) {
282+
console.error(err);
283+
throw err;
243284
}
244-
245-
return new Promise<modes.SignatureHelpResult>(resolve => {
246-
setTimeout(() => {
247-
resolve({
248-
value: {
249-
signatures: [{
250-
label: '' + count,
251-
parameters: []
252-
}],
253-
activeParameter: 0,
254-
activeSignature: 0
255-
},
256-
dispose: () => { }
257-
});
258-
}, 100);
259-
});
260285
}
261286
};
262287

@@ -290,23 +315,28 @@ suite('ParameterHintsModel', () => {
290315
signatureHelpRetriggerCharacters = [retriggerChar];
291316

292317
provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): modes.SignatureHelpResult | Promise<modes.SignatureHelpResult> {
293-
++invokeCount;
294-
if (invokeCount === 1) {
295-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
296-
assert.strictEqual(context.triggerCharacter, triggerChar);
297-
298-
// retrigger after delay for widget to show up
299-
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: retriggerChar }), 50);
300-
} else if (invokeCount === 2) {
301-
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
302-
assert.ok(context.isRetrigger);
303-
assert.strictEqual(context.triggerCharacter, retriggerChar);
304-
done();
305-
} else {
306-
assert.fail('Unexpected invoke');
318+
try {
319+
++invokeCount;
320+
if (invokeCount === 1) {
321+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
322+
assert.strictEqual(context.triggerCharacter, triggerChar);
323+
324+
// retrigger after delay for widget to show up
325+
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: retriggerChar }), 50);
326+
} else if (invokeCount === 2) {
327+
assert.strictEqual(context.triggerKind, modes.SignatureHelpTriggerKind.TriggerCharacter);
328+
assert.ok(context.isRetrigger);
329+
assert.strictEqual(context.triggerCharacter, retriggerChar);
330+
done();
331+
} else {
332+
assert.fail('Unexpected invoke');
333+
}
334+
335+
return emptySigHelpResult;
336+
} catch (err) {
337+
console.error(err);
338+
throw err;
307339
}
308-
309-
return emptySigHelpResult;
310340
}
311341
}));
312342

@@ -332,26 +362,31 @@ suite('ParameterHintsModel', () => {
332362
signatureHelpRetriggerCharacters = [];
333363

334364
async provideSignatureHelp(_model: ITextModel, _position: Position, _token: CancellationToken, context: modes.SignatureHelpContext): Promise<modes.SignatureHelpResult | undefined> {
335-
if (!context.isRetrigger) {
336-
// retrigger after delay for widget to show up
337-
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
365+
try {
366+
if (!context.isRetrigger) {
367+
// retrigger after delay for widget to show up
368+
setTimeout(() => editor.trigger('keyboard', Handler.Type, { text: triggerChar }), 50);
338369

339-
return {
340-
value: {
341-
activeParameter: 0,
342-
activeSignature: 0,
343-
signatures: [{
344-
label: firstProviderId,
345-
parameters: [
346-
{ label: paramterLabel }
347-
]
348-
}]
349-
},
350-
dispose: () => { }
351-
};
352-
}
370+
return {
371+
value: {
372+
activeParameter: 0,
373+
activeSignature: 0,
374+
signatures: [{
375+
label: firstProviderId,
376+
parameters: [
377+
{ label: paramterLabel }
378+
]
379+
}]
380+
},
381+
dispose: () => { }
382+
};
383+
}
353384

354-
return undefined;
385+
return undefined;
386+
} catch (err) {
387+
console.error(err);
388+
throw err;
389+
}
355390
}
356391
}));
357392

0 commit comments

Comments
 (0)