feat: show session ID in dashboard status display

Add session label (last 8 chars) next to each group status.
Export buildStatusContent and DashboardOptions for testing.
This commit is contained in:
Eyejoker
2026-03-16 05:36:30 +09:00
parent 6f38f1cd63
commit ea03956d0a
5 changed files with 70 additions and 6 deletions

49
src/dashboard.test.ts Normal file
View File

@@ -0,0 +1,49 @@
import { describe, expect, it } from 'vitest';
import { buildStatusContent, type DashboardOptions } from './dashboard.js';
function makeOptions(sessionId?: string): DashboardOptions {
const sessions: Record<string, string> = sessionId
? { 'group-folder': sessionId }
: {};
return {
assistantName: 'Test',
channels: [],
getSessions: () => sessions,
queue: {
getStatuses: () => [
{
jid: 'dc:123',
status: 'inactive',
elapsedMs: null,
pendingMessages: false,
pendingTasks: 0,
},
],
} as unknown as DashboardOptions['queue'],
registeredGroups: () => ({
'dc:123': {
name: 'clone-test',
folder: 'group-folder',
trigger: '@bot',
added_at: '2026-03-16T00:00:00.000Z',
},
}),
statusChannelId: 'status',
statusUpdateInterval: 60000,
usageUpdateInterval: 60000,
};
}
describe('buildStatusContent', () => {
it('shows cleared sessions as empty', () => {
const content = buildStatusContent(makeOptions());
expect(content).toContain('세션 없음');
});
it('shows a shortened session id when a session exists', () => {
const content = buildStatusContent(makeOptions('session-1234567890'));
expect(content).toContain('세션 34567890');
});
});