import { describe, it, expect } from 'vitest'; import { render, fireEvent } from '@testing-library/react'; import { OriginBadge, originDetails } from '../OriginBadge'; describe('OriginBadge', () => { it('shows nothing for entries no key touched', () => { expect(render().container.firstChild).toBeNull(); expect(render().container.firstChild).toBeNull(); }); it('names the key that created the entry, else the one that changed it', () => { const created = render(); expect(created.container.textContent).toBe('Home Assistant'); const changed = render(); expect(changed.container.textContent).toBe('Claude Code'); const old = render(); expect(old.container.textContent).toBe('MCP'); }); it('opens the details on tap', () => { const { getByRole, queryByRole } = render( ); expect(queryByRole('tooltip')).toBeNull(); fireEvent.click(getByRole('button')); const tip = getByRole('tooltip').textContent || ''; expect(tip).toContain('In der App angelegt'); expect(tip).toContain('zuletzt geändert per MCP (Claude Code)'); }); it('describes both created and changed', () => { const text = originDetails({ createdVia: 'api', createdKey: 'HA', changedVia: 'mcp', changedKey: 'Claude Code' }, '2026-11-01T08:12:00Z'); expect(text).toMatch(/^Angelegt per API \(HA\) am .* · zuletzt geändert per MCP \(Claude Code\)$/); }); });