42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
/**
|
|
* Guard tests for the static Instructor base-rules prompt.
|
|
*
|
|
* These assert that the workspace-reality + external-tool guidance is PRESENT
|
|
* and worded with its key anchors, so it can't silently regress or be dropped.
|
|
* (A prompt can't be unit-tested for model *compliance* — that's an eval/manual
|
|
* concern — but we CAN deterministically guarantee the instruction is in the
|
|
* prompt the Instructor receives, since buildSystemPrompt always prepends these
|
|
* base rules.)
|
|
*/
|
|
import { describe, expect, it } from 'vitest';
|
|
import { loadPBLV2Prompt } from '@/lib/pbl/v2/prompts/loader';
|
|
|
|
describe('instructor base rules — workspace reality & external tools', () => {
|
|
const rules = loadPBLV2Prompt('instructor-base-rules');
|
|
|
|
it('describes the actual workbench layout (roadmap + chat + submission area)', () => {
|
|
expect(rules).toContain('submission area');
|
|
expect(rules).toMatch(/roadmap/i);
|
|
});
|
|
|
|
it('states the platform has NO embedded editor / professional tool', () => {
|
|
expect(rules).toContain('NO embedded editor and no embedded professional tool');
|
|
// The concrete hallucination to kill: pretending there is an in-app editor.
|
|
expect(rules).toContain('online editor');
|
|
expect(rules).toMatch(/Never imply this platform has an editor or tool it does not/i);
|
|
});
|
|
|
|
it('says tool work happens in the learner\u2019s own external tool, opened by them', () => {
|
|
expect(rules).toContain('their own external tool, which they open themselves');
|
|
});
|
|
|
|
it('encodes when to name an external tool: skip ubiquitous office software, flag specialized tools', () => {
|
|
expect(rules).toContain('Ubiquitous office software');
|
|
expect(rules).toMatch(/When to name the external tool/i);
|
|
// A few of the specialized tools must be enumerated as the flag-it bucket.
|
|
for (const tool of ['VS Code', 'Tableau', 'PostgreSQL']) {
|
|
expect(rules).toContain(tool);
|
|
}
|
|
});
|
|
});
|