Skip to content

Commit e12ddc7

Browse files
committed
refactor: check for element in hasClass
1 parent dcd6a9d commit e12ddc7

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/wrappers/wrapper.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ export default class Wrapper implements BaseWrapper {
7777
throwError('wrapper.hasClass() must be passed a string')
7878
}
7979

80-
return this.element.className.split(' ').indexOf(className) !== -1
80+
return !!(this.element &&
81+
this.element.className.split(' ').indexOf(className) !== -1)
8182
}
8283

8384
/**

test/unit/specs/mount/Wrapper/hasClass.spec.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,19 @@ describe('hasClass', () => {
1414
expect(wrapper.hasClass('not-class-name')).to.equal(false)
1515
})
1616

17+
it('returns false if wrapper includes class name in string, but not as a seperate class', () => {
18+
const compiled = compileToFunctions('<div class="class-name-together"/>')
19+
const wrapper = mount(compiled)
20+
expect(wrapper.hasClass('class-name')).to.equal(false)
21+
})
22+
23+
it('returns false if wrapper does not have an element', () => {
24+
const compiled = compileToFunctions('<div />')
25+
const wrapper = mount(compiled)
26+
wrapper.element = null
27+
expect(wrapper.hasClass('not-class-name')).to.equal(false)
28+
})
29+
1730
it('throws an error if selector is not a string', () => {
1831
const compiled = compileToFunctions('<div />')
1932
const wrapper = mount(compiled)

0 commit comments

Comments
 (0)