fix(context): Improve context building, caching and test robustness
This commit is contained in:
		@@ -21,8 +21,9 @@ tap.test('LazyFileLoader.getMetadata should return file metadata without loading
 | 
			
		||||
  expect(metadata.size).toBeGreaterThan(0);
 | 
			
		||||
  expect(metadata.mtime).toBeGreaterThan(0);
 | 
			
		||||
  expect(metadata.estimatedTokens).toBeGreaterThan(0);
 | 
			
		||||
  // Rough estimate: size / 4
 | 
			
		||||
  expect(metadata.estimatedTokens).toBeCloseTo(metadata.size / 4, 10);
 | 
			
		||||
  // Rough estimate: size / 4 (with reasonable tolerance)
 | 
			
		||||
  expect(metadata.estimatedTokens).toBeGreaterThan(metadata.size / 5);
 | 
			
		||||
  expect(metadata.estimatedTokens).toBeLessThan(metadata.size / 3);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.test('LazyFileLoader.getMetadata should cache metadata for same file', async () => {
 | 
			
		||||
@@ -61,8 +62,8 @@ tap.test('LazyFileLoader.scanFiles should handle multiple globs', async () => {
 | 
			
		||||
  expect(metadata.length).toBeGreaterThanOrEqual(2);
 | 
			
		||||
  const hasPackageJson = metadata.some(m => m.relativePath === 'package.json');
 | 
			
		||||
  const hasReadme = metadata.some(m => m.relativePath.toLowerCase() === 'readme.md');
 | 
			
		||||
  expect(hasPackageJson).toBe(true);
 | 
			
		||||
  expect(hasReadme).toBe(true);
 | 
			
		||||
  expect(hasPackageJson).toEqual(true);
 | 
			
		||||
  expect(hasReadme).toEqual(true);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.test('LazyFileLoader.loadFile should load file with actual token count', async () => {
 | 
			
		||||
@@ -165,7 +166,7 @@ tap.test('LazyFileLoader.getCachedMetadata should return all cached entries', as
 | 
			
		||||
  const cached = loader.getCachedMetadata();
 | 
			
		||||
 | 
			
		||||
  expect(cached.length).toBeGreaterThanOrEqual(2);
 | 
			
		||||
  expect(cached.every(m => m.path && m.size && m.estimatedTokens)).toBe(true);
 | 
			
		||||
  expect(cached.every(m => m.path && m.size && m.estimatedTokens)).toEqual(true);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.test('LazyFileLoader should handle non-existent files gracefully', async () => {
 | 
			
		||||
@@ -174,7 +175,7 @@ tap.test('LazyFileLoader should handle non-existent files gracefully', async ()
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    await loader.getMetadata(nonExistentPath);
 | 
			
		||||
    expect(false).toBe(true); // Should not reach here
 | 
			
		||||
    expect(false).toEqual(true); // Should not reach here
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    expect(error).toBeDefined();
 | 
			
		||||
  }
 | 
			
		||||
@@ -219,8 +220,8 @@ tap.test('LazyFileLoader should handle glob patterns for TypeScript source files
 | 
			
		||||
  const hasEnhancedContext = metadata.some(m => m.relativePath.includes('enhanced-context.ts'));
 | 
			
		||||
  const hasTypes = metadata.some(m => m.relativePath.includes('types.ts'));
 | 
			
		||||
 | 
			
		||||
  expect(hasEnhancedContext).toBe(true);
 | 
			
		||||
  expect(hasTypes).toBe(true);
 | 
			
		||||
  expect(hasEnhancedContext).toEqual(true);
 | 
			
		||||
  expect(hasTypes).toEqual(true);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
tap.test('LazyFileLoader should estimate tokens reasonably accurately', async () => {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user