All files / src/components/admin/monitoring PrioritySelector.test.tsx

0% Statements 0/54
100% Branches 0/0
0% Functions 0/1
0% Lines 0/54

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55                                                                                                             
import React from 'react';
import { render, screen, fireEvent } from '@testing-library/react';
import { PrioritySelector } from './PrioritySelector';

describe('PrioritySelector', () => {
  const mockOnChange = jest.fn();

  beforeEach(() => {
    mockOnChange.mockClear();
  });

  it('renders selector', () => {
    render(<PrioritySelector value="MEDIUM" onChange={mockOnChange} />);
    expect(screen.getByTestId('priority-selector')).toBeInTheDocument();
  });

  it('displays current value', () => {
    render(<PrioritySelector value="HIGH" onChange={mockOnChange} />);
    const selector = screen.getByTestId('priority-selector') as HTMLSelectElement;
    expect(selector.value).toBe('HIGH');
  });

  it('renders label when provided', () => {
    render(<PrioritySelector value="MEDIUM" onChange={mockOnChange} label="Priority" />);
    expect(screen.getByText('Priority')).toBeInTheDocument();
  });

  it('calls onChange when selection changes', () => {
    render(<PrioritySelector value="MEDIUM" onChange={mockOnChange} />);
    const selector = screen.getByTestId('priority-selector');
    fireEvent.change(selector, { target: { value: 'CRITICAL' } });
    expect(mockOnChange).toHaveBeenCalledWith('CRITICAL');
  });

  it('contains all priority options', () => {
    render(<PrioritySelector value="MEDIUM" onChange={mockOnChange} />);
    expect(screen.getByText('Low')).toBeInTheDocument();
    expect(screen.getByText('Medium')).toBeInTheDocument();
    expect(screen.getByText('High')).toBeInTheDocument();
    expect(screen.getByText('Critical')).toBeInTheDocument();
  });

  it('is disabled when disabled prop is true', () => {
    render(<PrioritySelector value="MEDIUM" onChange={mockOnChange} disabled />);
    expect(screen.getByTestId('priority-selector')).toBeDisabled();
  });

  it('applies custom className', () => {
    const { container } = render(
      <PrioritySelector value="MEDIUM" onChange={mockOnChange} className="custom-class" />
    );
    expect(container.firstChild).toHaveClass('custom-class');
  });
});