import React from 'react';
import { describe, it, expect } from 'vitest';
import { render, fireEvent } from '@testing-library/react';
import { PixelBadgeGroup } from '../../data/PixelBadgeGroup';
import { PixelBadge } from '../../data/PixelBadge';
// PixelChipGroup tests moved to ./PixelChipGroup.test.tsx (mirrored
// per-component file).
describe('PixelBadgeGroup', () => {
it('renders all children when count <= max', () => {
const { getByText, queryByText } = render(
One
Two
Three
,
);
expect(getByText('One')).toBeTruthy();
expect(getByText('Two')).toBeTruthy();
expect(getByText('Three')).toBeTruthy();
// No overflow trigger when within max
expect(queryByText(/^\+\d/)).toBeNull();
});
it('shows +N popover trigger when overflowing and reveals remaining on click', () => {
const { getByText, queryByText, getByLabelText } = render(
A
B
C
D
E
,
);
// Visible: first 2 (max - 1 reserved for +N), then +3 trigger
expect(getByText('A')).toBeTruthy();
expect(getByText('B')).toBeTruthy();
// C/D/E not visible inline before opening
expect(queryByText('C')).toBeNull();
expect(queryByText('D')).toBeNull();
expect(queryByText('E')).toBeNull();
const trigger = getByLabelText('Show 3 more');
expect(trigger.textContent).toBe('+3');
// Click +N to open popover
fireEvent.click(trigger);
expect(getByText('C')).toBeTruthy();
expect(getByText('D')).toBeTruthy();
expect(getByText('E')).toBeTruthy();
});
});