agent-ecosystem/test/renderer/utils/contextTracker.test.ts
infiniti 9c438e7c84
fix: harden Windows frontend path handling
Harden Windows path handling and packaged app smoke checks.
2026-05-16 17:34:50 +03:00

66 lines
1.7 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { processSessionContextWithPhases } from '@renderer/utils/contextTracker';
function aiReadGroup(id: string, turnIndex: number, filePath: string) {
return {
id,
turnIndex,
startTime: new Date(0),
endTime: new Date(0),
durationMs: 0,
steps: [
{
type: 'tool_call',
content: {
toolName: 'Read',
toolInput: { file_path: filePath },
},
},
],
tokens: { input: 1000, output: 0, cached: 0 },
summary: {
toolCallCount: 1,
outputMessageCount: 0,
subagentCount: 0,
totalDurationMs: 0,
totalTokens: 1000,
outputTokens: 0,
cachedTokens: 0,
},
status: 'complete',
processes: [],
chunkId: id,
metrics: {},
responses: [],
linkedTools: new Map(),
displayItems: [],
} as any;
}
describe('processSessionContextWithPhases Windows paths', () => {
it('matches validated directory CLAUDE.md data across drive-case and separator differences', () => {
const { statsMap } = processSessionContextWithPhases(
[{ type: 'ai', group: aiReadGroup('ai-0', 0, 'c:/repo/src/file.ts') }],
'C:\\Repo',
undefined,
undefined,
{
'C:\\Repo\\src\\CLAUDE.md': {
path: 'C:\\Repo\\src\\CLAUDE.md',
exists: true,
charCount: 492,
estimatedTokens: 123,
},
}
);
const directoryInjection = statsMap
.get('ai-0')!
.newInjections.find(
(injection) => injection.category === 'claude-md' && injection.source === 'directory'
);
expect(directoryInjection?.estimatedTokens).toBe(123);
});
});