16
17
export class MockChatSessionsService implements IChatSessionsService {
19
>
20
>
private readonly _onDidChangeSessionOptions = new Emitter<IChatSessionOptionsChangeEvent>();
21
>
readonly onDidChangeSessionOptions = this._onDidChangeSessionOptions.event;
22
>
23
>
private readonly _onDidChangeItemsProviders = new Emitter<{ readonly chatSessionType: string }>();
24
>
readonly onDidChangeItemsProviders = this._onDidChangeItemsProviders.event;
25
>
26
>
private readonly _onDidChangeSessionItems = new Emitter<IChatSessionItemsDelta>();
27
>
readonly onDidChangeSessionItems = this._onDidChangeSessionItems.event;
28
>
29
>
private readonly _onDidChangeAvailability = new Emitter<void>();
30
>
readonly onDidChangeAvailability = this._onDidChangeAvailability.event;
31
>
32
>
private readonly _onDidChangeInProgress = new Emitter<void>();
33
>
readonly onDidChangeInProgress = this._onDidChangeInProgress.event;
34
>
35
>
private readonly _onDidChangeContentProviderSchemes = new Emitter<{ readonly added: string[]; readonly removed: string[] }>();
36
>
readonly onDidChangeContentProviderSchemes = this._onDidChangeContentProviderSchemes.event;
37
>
38
>
private readonly _onDidChangeOptionGroups = new Emitter<string>();
39
>
readonly onDidChangeOptionGroups = this._onDidChangeOptionGroups.event;
40
>
41
>
private readonly _onDidCommitSession = new Emitter<IChatSessionCommitEvent>();
42
>
readonly onDidCommitSession = this._onDidCommitSession.event;
43
>
44
>
45
>
private sessionItemControllers = new Map<string, { readonly controller: IChatSessionItemController; readonly initialRefresh: Promise<void> }>();
46
>
private contentProviders = new Map<string, IChatSessionContentProvider>();
47
>
private contributions: IChatSessionsExtensionPoint[] = [];
48
>
private optionGroups = new Map<string, IChatSessionProviderOptionGroup[]>();
49
>
private sessionOptions = new ResourceMap<ChatSessionOptionsMap>();
50
>
private inProgress = new Map</* chatSessionType*/ string, number>();
51
>
52
>
// For testing: allow triggering events
53
>
fireDidChangeItemsProviders(event: { chatSessionType: string }): void {
54
>
this._onDidChangeItemsProviders.fire(event);
55
>
}
56
>
57
>
fireDidChangeSessionItems(event: IChatSessionItemsDelta): void {
58
this._onDidChangeSessionItems.fire(event);
59
}
61
>
fireDidChangeAvailability(): void {
62
this._onDidChangeAvailability.fire();
63
}
65
>
fireDidChangeInProgress(): void {
66
this._onDidChangeInProgress.fire();
67
}
69
>
registerChatSessionItemController(chatSessionType: string, controller: IChatSessionItemController): IDisposable {
70
this.sessionItemControllers.set(chatSessionType, { controller, initialRefresh: controller.refresh(CancellationToken.None) });
71
return {