"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 index_1 = require("./index");
const defaultProps = {
    id: faker_1.default.random.uuid(),
    selectedItem: faker_1.default.random.uuid(),
    onChange: () => null,
};
describe('<ToggleButton />', () => {
    it('renders its children', () => {
        const id = faker_1.default.random.uuid();
        function Children() {
            return <div>children</div>;
        }
        const toggleButtonGroup = test_utilities_1.mountWithContext(<index_1.ToggleButtonGroup {...defaultProps}>
        <index_1.ToggleButton id={id}>
          <Children />
        </index_1.ToggleButton>
      </index_1.ToggleButtonGroup>);
        expect(toggleButtonGroup).toContainReactComponent(Children);
    });
    describe('onChange', () => {
        it('triggers onChange when button is selected', () => {
            const id = faker_1.default.random.uuid();
            const onChangeSpy = jest.fn();
            const toggleButtonGroup = test_utilities_1.mountWithContext(<index_1.ToggleButtonGroup {...defaultProps} onChange={onChangeSpy}>
          <index_1.ToggleButton id={id}/>
        </index_1.ToggleButtonGroup>);
            toggleButtonGroup.find('button').trigger('onClick');
            expect(onChangeSpy).toHaveBeenCalledWith(id);
        });
    });
    describe('aria-pressed', () => {
        it('aria-pressed corresponds to not selected', () => {
            const id = faker_1.default.random.uuid();
            const toggleButtonGroup = test_utilities_1.mountWithContext(<index_1.ToggleButtonGroup {...defaultProps}>
          <index_1.ToggleButton id={id}/>
        </index_1.ToggleButtonGroup>);
            expect(toggleButtonGroup).toContainReactComponent('button', {
                'aria-pressed': false,
            });
        });
        it('aria-pressed corresponds to selected', () => {
            const id = faker_1.default.random.uuid();
            const toggleButtonGroup = test_utilities_1.mountWithContext(<index_1.ToggleButtonGroup {...defaultProps} selectedItem={id}>
          <index_1.ToggleButton id={id}/>
        </index_1.ToggleButtonGroup>);
            expect(toggleButtonGroup).toContainReactComponent('button', {
                'aria-pressed': true,
            });
        });
    });
});
