UNPKG

@eeacms/volto-widget-theme-picker

Version:

@eeacms/volto-widget-theme-picker: Volto add-on

49 lines (40 loc) 1.44 kB
import React from 'react'; import { render, fireEvent } from '@testing-library/react'; import '@testing-library/jest-dom'; import ThemePicker from './ThemePicker'; describe('ThemePicker', () => { const props = { id: 'test-theme-picker', title: 'Test Theme Picker', value: 'color1', colors: [ { name: 'color1', label: 'Color 1' }, { name: 'color2', label: 'Color 2' }, ], onChange: () => {}, }; it('renders correctly', () => { const { container } = render(<ThemePicker {...props} />); expect(container.querySelector('.wrapper label')).toBeInTheDocument(); expect( container.querySelector('.wrapper .buttons .color1[title="Color 1"]'), ).toBeInTheDocument(); expect( container.querySelector('.wrapper .buttons .color2[title="Color 2"]'), ).toBeInTheDocument(); }); it('calls onChange with correct value when a color button is clicked', () => { const onChange = jest.fn(); const { getByTitle } = render( <ThemePicker {...props} onChange={onChange} />, ); fireEvent.click(getByTitle('Color 2')); expect(onChange).toHaveBeenCalledWith('test-theme-picker', 'color2'); }); it('does not render when no colors are provided', () => { const { container } = render(<ThemePicker {...props} colors={[]} />); expect( container.querySelector('.wrapper .field-test-theme-picker'), ).not.toBeInTheDocument(); }); });