diff --git a/src/collections/Menu/MenuItem.js b/src/collections/Menu/MenuItem.js
index f02ea3be9f..abaa187532 100644
--- a/src/collections/Menu/MenuItem.js
+++ b/src/collections/Menu/MenuItem.js
@@ -20,7 +20,7 @@ function MenuItem(props) {
const classes = cx(
useKeyOnly(active, 'active'),
useKeyOrValueAndKey(fitted, 'fitted'),
- useKeyOnly(icon, 'icon'),
+ useKeyOnly(icon === true || icon && !(name || content), 'icon'),
useKeyOnly(header, 'header'),
useKeyOnly(link, 'link'),
color,
diff --git a/test/specs/collections/Menu/MenuItem-test.js b/test/specs/collections/Menu/MenuItem-test.js
index 6da2652a54..6dbfcf64e7 100644
--- a/test/specs/collections/Menu/MenuItem-test.js
+++ b/test/specs/collections/Menu/MenuItem-test.js
@@ -38,6 +38,21 @@ describe('MenuItem', () => {
})
})
+ describe('icon', () => {
+ it('does not add `icon` className if there is also `name`', () => {
+ shallow()
+ .should.not.have.className('icon')
+ })
+ it('does not add `icon` className if there is also `content`', () => {
+ shallow()
+ .should.not.have.className('icon')
+ })
+ it('adds `icon` className if there is an `icon` without `name` or `content`', () => {
+ shallow()
+ .should.have.className('icon')
+ })
+ })
+
describe('onClick', () => {
it('can be omitted', () => {
const click = () => mount().simulate('click')