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\)$/);
});
});