import { describe, it, expect, beforeEach } from 'vitest'; import { registerRenderer, getRenderer, clearRegistry } from '../src/renderers/registry'; import type { ModeRenderer, RenderContext } from '../src/renderers/types'; function makeMockRenderer(mode: string): ModeRenderer { return { mode, render(_ctx: RenderContext): void {}, }; } describe('renderer registry', () => { beforeEach(() => { clearRegistry(); }); it('registers and retrieves a renderer by mode', () => { const renderer = makeMockRenderer('year'); registerRenderer(renderer); expect(getRenderer('year')).toBe(renderer); }); it('throws for unknown mode', () => { expect(() => getRenderer('nonexistent')).toThrowError('Unknown heatmap mode'); }); it('overwrites renderer for same mode', () => { const first = makeMockRenderer('year'); const second = makeMockRenderer('year'); registerRenderer(first); registerRenderer(second); expect(getRenderer('year')).toBe(second); }); });