Stabilize paired-room orchestration and Codex app-server flow
This commit is contained in:
58
src/platform-prompts.test.ts
Normal file
58
src/platform-prompts.test.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import fs from 'fs';
|
||||
import os from 'os';
|
||||
import path from 'path';
|
||||
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import {
|
||||
getPairedRoomPromptPath,
|
||||
getPlatformPromptPath,
|
||||
readPairedRoomPrompt,
|
||||
readPlatformPrompt,
|
||||
} from './platform-prompts.js';
|
||||
|
||||
describe('platform-prompts', () => {
|
||||
let tempDir: string;
|
||||
|
||||
beforeEach(() => {
|
||||
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'nanoclaw-prompts-'));
|
||||
vi.spyOn(process, 'cwd').mockReturnValue(tempDir);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.restoreAllMocks();
|
||||
fs.rmSync(tempDir, { recursive: true, force: true });
|
||||
});
|
||||
|
||||
it('returns undefined when the prompt file is missing', () => {
|
||||
expect(readPlatformPrompt('claude-code')).toBeUndefined();
|
||||
});
|
||||
|
||||
it('reads and trims provider-specific prompt files', () => {
|
||||
const promptsDir = path.join(tempDir, 'prompts');
|
||||
fs.mkdirSync(promptsDir, { recursive: true });
|
||||
fs.writeFileSync(
|
||||
path.join(promptsDir, 'codex-platform.md'),
|
||||
'\nCodex platform prompt\n',
|
||||
);
|
||||
|
||||
expect(getPlatformPromptPath('codex')).toBe(
|
||||
path.join(promptsDir, 'codex-platform.md'),
|
||||
);
|
||||
expect(readPlatformPrompt('codex')).toBe('Codex platform prompt');
|
||||
});
|
||||
|
||||
it('reads and trims paired-room prompt files', () => {
|
||||
const promptsDir = path.join(tempDir, 'prompts');
|
||||
fs.mkdirSync(promptsDir, { recursive: true });
|
||||
fs.writeFileSync(
|
||||
path.join(promptsDir, 'claude-paired-room.md'),
|
||||
'\nClaude paired prompt\n',
|
||||
);
|
||||
|
||||
expect(getPairedRoomPromptPath('claude-code')).toBe(
|
||||
path.join(promptsDir, 'claude-paired-room.md'),
|
||||
);
|
||||
expect(readPairedRoomPrompt('claude-code')).toBe('Claude paired prompt');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user