Skip to content

Commit

Permalink
fix(refinementList): ensure the key reflects the underlying state
Browse files Browse the repository at this point in the history
Fix #398
  • Loading branch information
redox committed Nov 3, 2015
1 parent cb34048 commit b048f0b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 3 deletions.
3 changes: 2 additions & 1 deletion components/RefinementList/RefinementList.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,11 @@ class RefinementList extends React.Component {
[this.props.cssClasses.active]: facetValue.isRefined
});

let key = facetValue[this.props.facetNameKey] + '/' + facetValue.isRefined + '/' + facetValue.count;
return (
<div
className={cssClassItem}
key={facetValue[this.props.facetNameKey]}
key={key}
onClick={this.handleClick.bind(this, facetValue[this.props.facetNameKey])}
>
<Template data={templateData} templateKey="item" {...this.props.templateProps} />
Expand Down
26 changes: 24 additions & 2 deletions components/RefinementList/__tests__/RefinementList-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ describe('RefinementList', () => {
data: {
cssClasses: {
list: 'list',
item: 'item'
item: 'item',
active: 'active'
}
}
};
Expand All @@ -55,6 +56,26 @@ describe('RefinementList', () => {
</div>
</div>
);
expect(out.props.children[0].key).toEqual('facet1/undefined/undefined');
expect(out.props.children[1].key).toEqual('facet2/undefined/undefined');
});

it('should render default list highlighted', () => {
let out = render({facetValues: [{name: 'facet1', isRefined: true, count: 42}]});
let activeTemplateProp = {...templateProps};
activeTemplateProp.data.count = 42;
activeTemplateProp.data.isRefined = true;
expect(out).toEqualJSX(
<div {...parentListProps}>
<div className="item active" onClick={itemProps.onClick}>
<Template
{...activeTemplateProp}
data={{...templateProps.data, name: 'facet1'}}
/>
</div>
</div>
);
expect(out.props.children[0].key).toEqual('facet1/true/42');
});

context('sublist', () => {
Expand Down Expand Up @@ -127,7 +148,8 @@ describe('RefinementList', () => {
return {
cssClasses: {
list: 'list',
item: 'item'
item: 'item',
active: 'active'
},
facetValues: [
{name: 'facet1'},
Expand Down

0 comments on commit b048f0b

Please sign in to comment.