diff --git a/js/src/base-component.js b/js/src/base-component.js index 62aa4adf17..ea0ad6c246 100644 --- a/js/src/base-component.js +++ b/js/src/base-component.js @@ -48,7 +48,7 @@ class BaseComponent { /** Static */ static getInstance(element) { - return Data.get(element, this.DATA_KEY) + return Data.get(getElement(element), this.DATA_KEY) } static getOrCreateInstance(element, config = {}) { diff --git a/js/tests/unit/base-component.spec.js b/js/tests/unit/base-component.spec.js index 1000f2841d..b8ec83f122 100644 --- a/js/tests/unit/base-component.spec.js +++ b/js/tests/unit/base-component.spec.js @@ -104,6 +104,20 @@ describe('Base Component', () => { expect(DummyClass.getInstance(element)).toBeInstanceOf(DummyClass) }) + it('should accept element, either passed as a CSS selector, jQuery element, or DOM element', () => { + createInstance() + + expect(DummyClass.getInstance('#foo')).toEqual(instance) + expect(DummyClass.getInstance(element)).toEqual(instance) + + const fakejQueryObject = { + 0: element, + jquery: 'foo' + } + + expect(DummyClass.getInstance(fakejQueryObject)).toEqual(instance) + }) + it('should return null when there is no instance', () => { fixtureEl.innerHTML = '
'