import { getSystemPrompt } from '../src/utils';

describe('base system prompt', () => {
    it('requires local project paths to be inspected immediately', () => {
        const prompt = getSystemPrompt();

        expect(prompt).toContain('[LOCAL PATH RULE]');
        expect(prompt).toContain('use <list_files> or <read_file> immediately');
        expect(prompt).toContain('Never say "upload the source code"');
    });

    it('gives Astra a stance instead of only response structure', () => {
        const prompt = getSystemPrompt();

        expect(prompt).toContain('[CORE BEHAVIOR]');
        expect(prompt).toContain('[ENGINEERING STANCE]');
        expect(prompt).toContain('Technical precision over polite filler');
        expect(prompt).toContain('Collapse checklists into: verdict → reason → risk → next move');
    });

    it('defines clear interaction and formatting rules', () => {
        const prompt = getSystemPrompt();

        expect(prompt).toContain('[STRICT GLOBAL RULES]');
        // v2.2.68: [OUTPUT FORMAT] header now annotated with "— 7 hard rules";
        // [FOLLOW-UP QUESTION RULES] is absorbed into R6 of the 7-rule block.
        expect(prompt).toContain('[OUTPUT FORMAT — 7 hard rules]');
        expect(prompt).toContain('R1. CONCLUSION FIRST');
        expect(prompt).toContain('R6. ASK ONE QUESTION ONLY WHEN');
        expect(prompt).toContain('R7. GUESS-AND-ACT WITH STATED ASSUMPTION');
    });
});
