"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const faker_1 = __importDefault(require("faker"));
const test_utilities_1 = require("../../test-utilities");
const View_1 = require("../View");
const context_1 = require("./context");
const OptionList_1 = require("./OptionList");
const defaultProps = {
    id: faker_1.default.random.uuid(),
    selectedItems: [faker_1.default.random.uuid()],
    onChange: () => null,
    children: <div />,
};
describe('<OptionList />', () => {
    it('renders its children', () => {
        function Children() {
            return <div>children</div>;
        }
        const accordion = test_utilities_1.mountWithContext(<OptionList_1.OptionList {...defaultProps}>
        <Children />
      </OptionList_1.OptionList>);
        expect(accordion).toContainReactComponent(Children);
    });
    it('wraps children with OptionListContext', () => {
        const id = faker_1.default.random.uuid();
        const selectedItems = [faker_1.default.random.uuid()];
        const onChange = () => null;
        const allowMultiple = false;
        const controlHidden = false;
        const accordion = test_utilities_1.mountWithContext(<OptionList_1.OptionList {...defaultProps} id={id} selectedItems={selectedItems} onChange={onChange} allowMultiple={allowMultiple}/>);
        expect(accordion).toProvideReactContext(context_1.OptionListContext, {
            id,
            selectedItems,
            onChange,
            allowMultiple,
            controlHidden,
        });
    });
    it('renders a title if provided', () => {
        const title = faker_1.default.random.word();
        const accordion = test_utilities_1.mountWithContext(<OptionList_1.OptionList {...defaultProps} title={title}/>);
        expect(accordion).toContainReactComponent('legend');
        expect(accordion.find('legend')).toContainReactText(title);
    });
    it('renders a hidden title if provided when titleHidden prop is set to true', () => {
        const title = faker_1.default.random.word();
        const accordion = test_utilities_1.mountWithContext(<OptionList_1.OptionList {...defaultProps} title={title} titleHidden/>);
        expect(accordion.find(View_1.View, { visibility: 'hidden' })).toContainReactComponent('legend');
        expect(accordion.find('legend')).toContainReactText(title);
    });
});
