diff --git a/src/modules/Dropdown/Dropdown.js b/src/modules/Dropdown/Dropdown.js index 3e487aebd7..97fb544699 100644 --- a/src/modules/Dropdown/Dropdown.js +++ b/src/modules/Dropdown/Dropdown.js @@ -1058,8 +1058,8 @@ export default class Dropdown extends Component { return ( ) @@ -1152,7 +1152,7 @@ export default class Dropdown extends Component { return _.map(options, (opt, i) => ( { }) }) + describe('renderOptions', () => { + it('prefers the option\'s "key" property for keying generated DropdownItems', () => { + const customOptions = [ + { text: '1', value: '1', key: 'a' }, + { text: '2', value: '2', key: 'b' }, + ] + wrapperShallow() + wrapper.should.contain('DropdownItem[key="a"]') + wrapper.should.contain('DropdownItem[key="b"]') + }) + + it('generates a "key" property using the option.value if no key is provided', () => { + const customOptions = [ + { text: '1', value: '1' }, + { text: '2', value: '2' }, + ] + wrapperShallow() + wrapper.should.contain('DropdownItem[key="1-0"]') + wrapper.should.contain('DropdownItem[key="2-1"]') + }) + }) + describe('Dropdown.Menu child', () => { it('renders child passed', () => { wrapperShallow(