Merge pull request #300844 from mjbvz/dev/mjbvz/historical-gecko

Add StaticChatSessionItemController helper for test
This commit is contained in:
Matt Bierner
2026-03-11 11:13:22 -07:00
committed by GitHub

View File

@@ -24,6 +24,20 @@ import { TestInstantiationService } from '../../../../../../platform/instantiati
import { IStorageService, StorageScope, StorageTarget } from '../../../../../../platform/storage/common/storage.js';
import { AgentSessionProviders, getAgentCanContinueIn, getAgentSessionProviderIcon, getAgentSessionProviderName } from '../../../browser/agentSessions/agentSessions.js';
class StaticChatSessionItemController implements IChatSessionItemController {
readonly onDidChangeChatSessionItems = Event.None;
constructor(
private readonly sessionItems: readonly IChatSessionItem[],
) { }
get items(): readonly IChatSessionItem[] {
return this.sessionItems;
}
async refresh(): Promise<void> { }
}
suite('AgentSessions', () => {
@@ -64,20 +78,14 @@ suite('AgentSessions', () => {
test('should resolve sessions from controllers', async () => {
return runWithFakedTimers({}, async () => {
const chatSessionType = 'test-type';
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [
makeSimpleSessionItem('session-1', {
label: 'Test Session 1'
}),
makeSimpleSessionItem('session-2', {
label: 'Test Session 2'
})
];
}
};
const controller = new StaticChatSessionItemController([
makeSimpleSessionItem('session-1', {
label: 'Test Session 1'
}),
makeSimpleSessionItem('session-2', {
label: 'Test Session 2'
})
]);
mockChatSessionsService.registerChatSessionItemController(chatSessionType, controller);
viewModel = createViewModel();
@@ -94,21 +102,9 @@ suite('AgentSessions', () => {
test('should resolve sessions from multiple controllers', async () => {
return runWithFakedTimers({}, async () => {
const controller1: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller1 = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
const controller2: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-2')];
}
};
const controller2 = new StaticChatSessionItemController([makeSimpleSessionItem('session-2')]);
mockChatSessionsService.registerChatSessionItemController('type-1', controller1);
mockChatSessionsService.registerChatSessionItemController('type-2', controller2);
@@ -125,11 +121,7 @@ suite('AgentSessions', () => {
test('should fire onWillResolve and onDidResolve events', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() { return []; }
};
const controller = new StaticChatSessionItemController([]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -156,13 +148,7 @@ suite('AgentSessions', () => {
test('should fire onDidChangeSessions event after resolving', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -183,22 +169,16 @@ suite('AgentSessions', () => {
const created = Date.now();
const lastRequestEnded = created + 1000;
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-1'),
label: 'Test Session',
description: new MarkdownString('**Bold** description'),
status: ChatSessionStatus.Completed,
tooltip: 'Session tooltip',
iconPath: ThemeIcon.fromId('check'),
timing: { created, lastRequestStarted: created, lastRequestEnded },
changes: { files: 1, insertions: 10, deletions: 5 }
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-1'),
label: 'Test Session',
description: new MarkdownString('**Bold** description'),
status: ChatSessionStatus.Completed,
tooltip: 'Session tooltip',
iconPath: ThemeIcon.fromId('check'),
timing: { created, lastRequestStarted: created, lastRequestEnded },
changes: { files: 1, insertions: 10, deletions: 5 }
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -222,21 +202,9 @@ suite('AgentSessions', () => {
test('should handle resolve with specific provider', async () => {
return runWithFakedTimers({}, async () => {
const controller1: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller1 = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
const controller2: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-2')];
}
};
const controller2 = new StaticChatSessionItemController([makeSimpleSessionItem('session-2')]);
disposables.add(mockChatSessionsService.registerChatSessionItemController('type-1', controller1));
disposables.add(mockChatSessionsService.registerChatSessionItemController('type-2', controller2));
@@ -256,21 +224,9 @@ suite('AgentSessions', () => {
test('should handle resolve with multiple specific controllers', async () => {
return runWithFakedTimers({}, async () => {
const controller1: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller1 = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
const controller2: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-2')];
}
};
const controller2 = new StaticChatSessionItemController([makeSimpleSessionItem('session-2')]);
mockChatSessionsService.registerChatSessionItemController('type-1', controller1);
mockChatSessionsService.registerChatSessionItemController('type-2', controller2);
@@ -286,13 +242,7 @@ suite('AgentSessions', () => {
test('should respond to onDidChangeItemsProviders event', async () => {
return runWithFakedTimers({}, async () => {
const chatSessionType = 'test-type';
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController(chatSessionType, controller);
viewModel = createViewModel();
@@ -311,13 +261,7 @@ suite('AgentSessions', () => {
test('should respond to onDidChangeAvailability event', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -336,13 +280,7 @@ suite('AgentSessions', () => {
test('should respond to onDidChangeSessionItems event', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -361,13 +299,7 @@ suite('AgentSessions', () => {
test('should maintain provider reference in session view model', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -381,11 +313,7 @@ suite('AgentSessions', () => {
test('should handle empty provider results', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() { return []; }
};
const controller = new StaticChatSessionItemController([]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -398,35 +326,26 @@ suite('AgentSessions', () => {
test('should handle sessions with different statuses', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [
{
id: 'session-failed',
resource: URI.parse('test://session-failed'),
label: 'Failed Session',
status: ChatSessionStatus.Failed,
timing: makeNewSessionTiming()
},
{
id: 'session-completed',
resource: URI.parse('test://session-completed'),
label: 'Completed Session',
status: ChatSessionStatus.Completed,
timing: makeNewSessionTiming()
},
{
id: 'session-inprogress',
resource: URI.parse('test://session-inprogress'),
label: 'In Progress Session',
status: ChatSessionStatus.InProgress,
timing: makeNewSessionTiming()
}
];
const controller = new StaticChatSessionItemController([
{
resource: URI.parse('test://session-failed'),
label: 'Failed Session',
status: ChatSessionStatus.Failed,
timing: makeNewSessionTiming()
},
{
resource: URI.parse('test://session-completed'),
label: 'Completed Session',
status: ChatSessionStatus.Completed,
timing: makeNewSessionTiming()
},
{
resource: URI.parse('test://session-inprogress'),
label: 'In Progress Session',
status: ChatSessionStatus.InProgress,
timing: makeNewSessionTiming()
}
};
]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -470,18 +389,11 @@ suite('AgentSessions', () => {
test('should handle local agent session type specially', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
id: 'local-session',
resource: LocalChatSessionUri.forSession('local-session'),
label: 'Local Session',
timing: makeNewSessionTiming()
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: LocalChatSessionUri.forSession('local-session'),
label: 'Local Session',
timing: makeNewSessionTiming()
}]);
mockChatSessionsService.registerChatSessionItemController(localChatSessionType, controller);
viewModel = createViewModel();
@@ -497,17 +409,11 @@ suite('AgentSessions', () => {
return runWithFakedTimers({}, async () => {
const resource = URI.parse('custom://my-session/path');
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: resource,
label: 'Test Session',
timing: makeNewSessionTiming()
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: resource,
label: 'Test Session',
timing: makeNewSessionTiming()
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = createViewModel();
@@ -1046,11 +952,7 @@ suite('AgentSessions', () => {
});
test('should register provider filter actions', () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() { return []; }
};
const controller = new StaticChatSessionItemController([]);
mockChatSessionsService.registerChatSessionItemController('custom-type-1', controller);
@@ -1071,11 +973,7 @@ suite('AgentSessions', () => {
));
const chatSessionType = 'new-type';
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() { return []; }
};
const controller = new StaticChatSessionItemController([]);
// Register provider after filter creation
mockChatSessionsService.registerChatSessionItemController(chatSessionType, controller);
@@ -1314,13 +1212,7 @@ suite('AgentSessions', () => {
test('should archive and unarchive sessions', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1342,13 +1234,7 @@ suite('AgentSessions', () => {
test('should fire onDidChangeSessions when archiving', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1368,13 +1254,7 @@ suite('AgentSessions', () => {
test('should not fire onDidChangeSessions when archiving with same value', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1397,18 +1277,12 @@ suite('AgentSessions', () => {
test('should preserve archived state from provider', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-1'),
label: 'Test Session',
archived: true,
timing: makeNewSessionTiming()
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-1'),
label: 'Test Session',
archived: true,
timing: makeNewSessionTiming()
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1422,18 +1296,12 @@ suite('AgentSessions', () => {
test('should override provider archived state with user preference', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-1'),
label: 'Test Session',
archived: true,
timing: makeNewSessionTiming()
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-1'),
label: 'Test Session',
archived: true,
timing: makeNewSessionTiming()
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1484,17 +1352,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2026, 1 /* February */, 2),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-1'),
label: 'Session 1',
timing: futureSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-1'),
label: 'Session 1',
timing: futureSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1515,13 +1377,7 @@ suite('AgentSessions', () => {
test('should fire onDidChangeSessions when marking as read', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1543,13 +1399,7 @@ suite('AgentSessions', () => {
test('should not fire onDidChangeSessions when marking as read with same value', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1572,13 +1422,7 @@ suite('AgentSessions', () => {
test('should preserve read state after re-resolve', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1605,17 +1449,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2025, 10 /* November */, 2),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://old-session'),
label: 'Old Session',
timing: oldSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://old-session'),
label: 'Old Session',
timing: oldSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1636,17 +1474,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2026, 1 /* February */, 2),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1668,17 +1500,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2026, 1 /* February */, 1),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-with-endtime'),
label: 'Session With EndTime',
timing: sessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-with-endtime'),
label: 'Session With EndTime',
timing: sessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1700,17 +1526,11 @@ suite('AgentSessions', () => {
lastRequestEnded: undefined,
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-no-endtime'),
label: 'Session Without EndTime',
timing: sessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-no-endtime'),
label: 'Session Without EndTime',
timing: sessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1731,17 +1551,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2026, 1 /* February */, 2),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1770,17 +1584,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2026, 1 /* February */, 2),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1815,17 +1623,11 @@ suite('AgentSessions', () => {
lastRequestEnded: Date.UTC(2026, 1 /* February */, 2),
};
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://new-session'),
label: 'New Session',
timing: newSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -1858,17 +1660,11 @@ suite('AgentSessions', () => {
};
const chatSessionType = 'test-type';
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://old-session'),
label: 'Old Session',
timing: oldSessionTiming,
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://old-session'),
label: 'Old Session',
timing: oldSessionTiming,
}]);
mockChatSessionsService.registerChatSessionItemController(chatSessionType, controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -2031,13 +1827,7 @@ suite('AgentSessions', () => {
instantiationService.stub(IChatSessionsService, mockChatSessionsService);
instantiationService.stub(ILifecycleService, disposables.add(new TestLifecycleService()));
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController(AgentSessionProviders.Local, controller);
const viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -2058,13 +1848,7 @@ suite('AgentSessions', () => {
instantiationService.stub(IChatSessionsService, mockChatSessionsService);
instantiationService.stub(ILifecycleService, disposables.add(new TestLifecycleService()));
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController(AgentSessionProviders.Background, controller);
const viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -2085,13 +1869,7 @@ suite('AgentSessions', () => {
instantiationService.stub(IChatSessionsService, mockChatSessionsService);
instantiationService.stub(ILifecycleService, disposables.add(new TestLifecycleService()));
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController(AgentSessionProviders.Cloud, controller);
const viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -2113,18 +1891,12 @@ suite('AgentSessions', () => {
instantiationService.stub(ILifecycleService, disposables.add(new TestLifecycleService()));
const customIcon = ThemeIcon.fromId('beaker');
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [{
resource: URI.parse('test://session-1'),
label: 'Test Session',
iconPath: customIcon,
timing: makeNewSessionTiming()
}];
}
};
const controller = new StaticChatSessionItemController([{
resource: URI.parse('test://session-1'),
label: 'Test Session',
iconPath: customIcon,
timing: makeNewSessionTiming()
}]);
mockChatSessionsService.registerChatSessionItemController('custom-type', controller);
const viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -2143,13 +1915,7 @@ suite('AgentSessions', () => {
instantiationService.stub(IChatSessionsService, mockChatSessionsService);
instantiationService.stub(ILifecycleService, disposables.add(new TestLifecycleService()));
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('custom-type', controller);
const viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));
@@ -2199,13 +1965,7 @@ suite('AgentSessions', () => {
test('should not resolve if lifecycle will shutdown', async () => {
return runWithFakedTimers({}, async () => {
const controller: IChatSessionItemController = {
onDidChangeChatSessionItems: Event.None,
refresh: async () => { },
get items() {
return [makeSimpleSessionItem('session-1')];
}
};
const controller = new StaticChatSessionItemController([makeSimpleSessionItem('session-1')]);
mockChatSessionsService.registerChatSessionItemController('test-type', controller);
viewModel = disposables.add(instantiationService.createInstance(AgentSessionsModel));