Files
EJClaw/src/data-state-files.test.ts
2026-04-25 09:30:40 +09:00

44 lines
1.3 KiB
TypeScript

import fs from 'fs';
import os from 'os';
import path from 'path';
import { afterEach, describe, expect, it } from 'vitest';
import { listUnexpectedDataStateFiles } from './data-state-files.js';
const tempDirs: string[] = [];
function makeTempDir(): string {
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'ejclaw-data-state-'));
tempDirs.push(tempDir);
return tempDir;
}
afterEach(() => {
for (const tempDir of tempDirs.splice(0)) {
fs.rmSync(tempDir, { force: true, recursive: true });
}
});
describe('listUnexpectedDataStateFiles', () => {
it('allows known runtime state files', () => {
const dataDir = makeTempDir();
fs.writeFileSync(path.join(dataDir, 'token-rotation-state.json'), '{}');
fs.writeFileSync(path.join(dataDir, 'codex-rotation-state.json'), '{}');
fs.writeFileSync(path.join(dataDir, 'codex-warmup-state.json'), '{}');
fs.writeFileSync(path.join(dataDir, 'claude-usage-cache.json'), '{}');
fs.writeFileSync(path.join(dataDir, 'restart-context.abc.json'), '{}');
expect(listUnexpectedDataStateFiles(dataDir)).toEqual([]);
});
it('reports unsupported legacy state files', () => {
const dataDir = makeTempDir();
fs.writeFileSync(path.join(dataDir, 'router_state.json'), '{}');
expect(listUnexpectedDataStateFiles(dataDir)).toEqual([
'router_state.json',
]);
});
});