import { describe, it, expect } from 'vitest';
import { mount } from '@vue/test-utils';
import StatusPill from '../../resources/js/components/ui/StatusPill.vue';

describe('StatusPill', () => {
    it('renders label text', () => {
        const w = mount(StatusPill, { props: { slug: 'new', label: 'Новый' } });
        expect(w.text()).toContain('Новый');
    });

    it('falls back to slug when label not provided', () => {
        const w = mount(StatusPill, { props: { slug: 'in_progress' } });
        expect(w.text()).toContain('in_progress');
    });

    it.each(['new', 'in_progress', 'won', 'archived', 'cancelled'])('applies correct background for %s', (slug) => {
        const w = mount(StatusPill, { props: { slug } });
        const style = w.attributes('style') ?? '';
        expect(style).toContain('background');
        expect(style).toContain('color');
    });

    it('cancelled slug applies line-through', () => {
        const w = mount(StatusPill, { props: { slug: 'cancelled' } });
        expect(w.attributes('style') ?? '').toContain('line-through');
    });

    it('won slug applies font-weight: 600', () => {
        const w = mount(StatusPill, { props: { slug: 'won' } });
        expect(w.attributes('style') ?? '').toMatch(/font-weight:\s*600/);
    });
});
