mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-08 22:22:52 +00:00
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import fs from 'node:fs/promises';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
|
|
import { glob } from 'glob';
|
|
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
vi.mock('glob', () => ({ glob: vi.fn() }));
|
|
vi.mock('../../src/config/ignore-service.js', () => ({
|
|
createIgnoreFilter: vi.fn(async () => []),
|
|
}));
|
|
|
|
import { walkRepositoryPaths } from '../../src/core/ingestion/filesystem-walker.js';
|
|
|
|
const temporaryRoots: string[] = [];
|
|
|
|
afterEach(async () => {
|
|
vi.mocked(glob).mockReset();
|
|
await Promise.all(
|
|
temporaryRoots.splice(0).map((root) => fs.rm(root, { recursive: true, force: true })),
|
|
);
|
|
});
|
|
|
|
describe('walkRepositoryPaths ordering', () => {
|
|
it('returns accepted files in canonical path order when glob order is unstable', async () => {
|
|
const root = await fs.mkdtemp(path.join(os.tmpdir(), 'gitnexus-scan-order-'));
|
|
temporaryRoots.push(root);
|
|
await Promise.all(
|
|
['zeta.ts', 'alpha.ts', 'middle.ts'].map((file) =>
|
|
fs.writeFile(path.join(root, file), `export const ${file[0]} = true;\n`),
|
|
),
|
|
);
|
|
vi.mocked(glob).mockResolvedValue(['zeta.ts', 'alpha.ts', 'middle.ts']);
|
|
|
|
const result = await walkRepositoryPaths(root);
|
|
|
|
expect(result.map((entry) => entry.path)).toEqual(['alpha.ts', 'middle.ts', 'zeta.ts']);
|
|
});
|
|
});
|