import { describe, it, expect, vi } from 'vitest'; import { NoOpLlmProvider } from '../../../src/modules/llm/no-op-llm.provider.js'; import { LLM_PROVIDER } from '../../../src/modules/llm/llm-provider.interface.js'; describe(NoOpLlmProvider.name, () => { const provider = new NoOpLlmProvider(); it('exports LLM_PROVIDER symbol', () => { expect(typeof LLM_PROVIDER).toBe('symbol'); }); it('extractNutrition returns null and warns', async () => { const spy = vi.spyOn(console, 'warn').mockImplementation(() => {}); const result = await provider.extractNutrition({ text: 'apple' }); expect(result).toBeNull(); expect(spy).toHaveBeenCalledWith(expect.stringContaining('extractNutrition')); spy.mockRestore(); }); it('parseRecipe returns null and warns', async () => { const spy = vi.spyOn(console, 'warn').mockImplementation(() => {}); const result = await provider.parseRecipe('pasta recipe'); expect(result).toBeNull(); expect(spy).toHaveBeenCalledWith(expect.stringContaining('parseRecipe')); spy.mockRestore(); }); it('parseRecipeFromUrl returns null and warns', async () => { const spy = vi.spyOn(console, 'warn').mockImplementation(() => {}); const result = await provider.parseRecipeFromUrl('https://example.com'); expect(result).toBeNull(); expect(spy).toHaveBeenCalledWith(expect.stringContaining('parseRecipeFromUrl')); spy.mockRestore(); }); it('parseReceipt returns null and warns', async () => { const spy = vi.spyOn(console, 'warn').mockImplementation(() => {}); const result = await provider.parseReceipt(Buffer.from('fake-image')); expect(result).toBeNull(); expect(spy).toHaveBeenCalledWith(expect.stringContaining('parseReceipt')); spy.mockRestore(); }); it('suggestMealPlan returns null and warns', async () => { const spy = vi.spyOn(console, 'warn').mockImplementation(() => {}); const result = await provider.suggestMealPlan({ householdId: 'hh1' }); expect(result).toBeNull(); expect(spy).toHaveBeenCalledWith(expect.stringContaining('suggestMealPlan')); spy.mockRestore(); }); it('parseNaturalLanguage returns null and warns', async () => { const spy = vi.spyOn(console, 'warn').mockImplementation(() => {}); const result = await provider.parseNaturalLanguage('add milk'); expect(result).toBeNull(); expect(spy).toHaveBeenCalledWith(expect.stringContaining('parseNaturalLanguage')); spy.mockRestore(); }); });