feat(core): add missing tests

This commit is contained in:
Rémi DOREAU
2020-09-20 14:48:06 +02:00
parent 4cb7af0037
commit b1209950e1
4 changed files with 121 additions and 0 deletions
@@ -0,0 +1,60 @@
/*
* Copyright 2020 Spotify AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { CheckboxTree } from '.';
const CHECKBOX_TREE_ITEMS = [
{
label: 'Genereic subcategory name 1',
options: [
{
label: 'Option 1',
value: 1,
},
{
label: 'Option 2',
value: 2,
},
],
},
];
const minProps = {
onChange: jest.fn(),
label: 'Default',
subCategories: CHECKBOX_TREE_ITEMS,
};
describe('<CheckboxTree />', () => {
it('renders without exploding', async () => {
const { getByText, getByTestId } = render(<CheckboxTree {...minProps} />);
expect(getByText('Genereic subcategory name 1')).toBeInTheDocument();
const checkbox = await getByTestId('expandable');
// Simulate click on expandable arrow
fireEvent.click(checkbox);
// Simulate click on option
const option = getByText('Option 1');
expect(getByText('Option 1')).toBeInTheDocument();
fireEvent.click(option);
expect(minProps.onChange).toHaveBeenCalled();
});
});
@@ -240,10 +240,12 @@ export const CheckboxTree = (props: CheckboxTreeProps) => {
<>
{item.isOpen ? (
<ExpandLess
data-testid="expandable"
onClick={event => handleOpen(event, item.label)}
/>
) : (
<ExpandMore
data-testid="expandable"
onClick={event => handleOpen(event, item.label)}
/>
)}
@@ -0,0 +1,58 @@
/*
* Copyright 2020 Spotify AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import { Select } from '.';
const SELECT_ITEMS = [
{
label: 'test 1',
value: 'test_1',
},
{
label: 'test 2',
value: 'test_2',
},
];
const minProps = {
onChange: jest.fn(),
label: 'Default',
placeholder: 'All results',
items: SELECT_ITEMS,
};
describe('<Select />', () => {
it('renders without exploding', async () => {
const { getByText, getByTestId } = render(<Select {...minProps} />);
expect(getByText('Default')).toBeInTheDocument();
const input = await getByTestId('select');
expect(input.textContent).toBe('All results');
// Simulate click on input
fireEvent.click(input);
expect(getByText('test 1')).toBeInTheDocument();
const option = getByText('test 1');
// Simulate click on option
fireEvent.click(option);
expect(input.textContent).toBe('test 1');
});
});
@@ -150,6 +150,7 @@ export const SelectComponent = (props: SelectProps) => {
<FormControl className={classes.formControl}>
<Select
value={value}
data-testid="select"
displayEmpty
multiple={multiple}
onChange={handleChange}