import { describe, it, expect } from 'vitest'; import { buildVisionPrompt } from '@main/ai/visionPrompt.js'; describe('buildVisionPrompt', () => { it('includes text, todayKst, dueCandidates, and vocab slice when present', () => { const result = buildVisionPrompt( '회의 메모', '2026-05-09', ['2026-05-10', '2026-05-15'], ['work', 'meeting', 'project', 'todo'] ); expect(result).toContain('회의 메모'); expect(result).toContain('2026-05-09'); expect(result).toContain('2026-05-10, 2026-05-15'); expect(result).toContain('work, meeting, project, todo'); }); it('본문 빈 경우 이미지 묘사 + null 금지 명시 + one-shot 예시 (v0.3.14+)', () => { const result = buildVisionPrompt('', '2026-05-09', [], []); expect(result).toContain('본문이 없습니다'); expect(result).toContain('null 반환 절대 금지'); expect(result).toContain('예시'); // one-shot 예시 포함 expect(result).toContain('잔디 위 강아지'); // 예시 1 expect(result).not.toContain('메모 본문:\n'); }); it('본문 있는 경우 본문 우선 + 이미지 함께 분석 명시', () => { const result = buildVisionPrompt('회의 메모', '2026-05-09', [], []); expect(result).toContain('메모 본문:\n회의 메모'); expect(result).toContain('첨부 이미지도 함께 분석'); }); });