MCPcopy Create free account
hub / github.com/Dart-Code/Dart-Code / stubCreateQuickPickActions

Function stubCreateQuickPickActions

src/test/helpers.ts:391–446  ·  view source on GitHub ↗
(actions: QuickPickAction[])

Source from the content-addressed store, hash-verified

389 * The next action will be chosen for each call to createQuickPick().
390 */
391export function stubCreateQuickPickActions(actions: QuickPickAction[]): void {
392 const createQuickPick = sb.stub(vs.window, "createQuickPick");
393 createQuickPick.callsFake(() => {
394 let acceptHandler: () => void;
395 let hideHandler: () => void;
396 const quickPick = {
397 activeItems: [] as vs.QuickPickItem[],
398 canSelectMany: false,
399 dispose: sb.stub(),
400 items: [] as vs.QuickPickItem[],
401 onDidAccept: (handler: () => void) => {
402 acceptHandler = handler;
403 return { dispose: () => undefined };
404 },
405 onDidHide: (handler: () => void) => {
406 hideHandler = handler;
407 return { dispose: () => undefined };
408 },
409 placeholder: undefined as string | undefined,
410 selectedItems: [] as vs.QuickPickItem[],
411 show: () => {
412 const action = actions.shift();
413 if (!action)
414 throw new Error("No more quick pick actions were available");
415
416 // Defer callbacks until after the implementation code has finished wiring up
417 // all event handlers.
418 setImmediate(() => {
419 switch (action.kind) {
420 case "cancel":
421 hideHandler?.();
422 break;
423 case "top-level-setting":
424 quickPick.selectedItems = quickPick.items.filter((item) => item.label === action.label);
425 acceptHandler?.();
426 break;
427 case "enum":
428 quickPick.activeItems = quickPick.items.filter((item) => item.label === action.label);
429 acceptHandler?.();
430 break;
431 case "multi":
432 quickPick.selectedItems = quickPick.items.filter((item) => action.labels.includes(item.label));
433 acceptHandler?.();
434 break;
435 case "accept-selected":
436 acceptHandler?.();
437 break;
438 }
439 });
440 },
441 title: undefined as string | undefined,
442 };
443
444 return quickPick;
445 });
446}
447
448export async function closeAllOpenFiles(): Promise<void> {

Calls

no outgoing calls