Skip to content

Commit

Permalink
MM-19678 - Restored setSelected in MultiSelectList component (matterm…
Browse files Browse the repository at this point in the history
…ost#4033)

* Restored setSelected in multiselectList component

* Added unit test for setSelected being called

* Reverted commented method

* Linting

* Updated tests
  • Loading branch information
marianunez authored Oct 29, 2019
1 parent b9961a9 commit 43981dd
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
38 changes: 37 additions & 1 deletion components/multiselect/multiselect.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ import React from 'react';

import {shallow} from 'enzyme';

import MultiSelect from 'components/multiselect/multiselect.jsx';
import {mountWithIntl} from 'tests/helpers/intl-test-helper.jsx';

import MultiSelect from './multiselect.jsx';
import MultiSelectList from './multiselect_list.jsx';

describe('components/multiselect/multiselect', () => {
const totalCount = 8;
Expand Down Expand Up @@ -42,4 +45,37 @@ describe('components/multiselect/multiselect', () => {
expect(wrapper.state('page')).toEqual(1);
expect(wrapper).toMatchSnapshot();
});

test('MultiSelectList should match state on next page', () => {
function renderOption(option, isSelected, onAdd) {
return (
<p
key={option.id}
ref={isSelected ? 'selected' : option.id}
onClick={() => onAdd(option)}
>
{option.id}
</p>
);
}

function renderValue(props) {
return props.data.value;
}

const wrapper = mountWithIntl(
<MultiSelect
{...baseProps}
optionRenderer={renderOption}
valueRenderer={renderValue}
/>
);

const listRef = wrapper.ref('list');
expect(listRef.setSelected).toBeTruthy();

expect(wrapper.find(MultiSelectList).state('selected')).toEqual(-1);
wrapper.find('.filter-control__next').simulate('click');
expect(wrapper.find(MultiSelectList).state('selected')).toEqual(0);
});
});
6 changes: 6 additions & 0 deletions components/multiselect/multiselect_list.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ export default class MultiSelectList extends React.Component {
}
}

// setSelected updates the selected index and is referenced
// externally by the MultiSelect component.
setSelected = (selected) => {
this.setState({selected});
}

handleArrowPress = (e) => {
if (cmdOrCtrlPressed(e) && e.shiftKey) {
return;
Expand Down

0 comments on commit 43981dd

Please sign in to comment.