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(