]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Accept argument of different types in the `getInstance` method (#34333)
authorJeremy Jackson <git@jeremyvii.com>
Tue, 29 Jun 2021 14:45:45 +0000 (09:45 -0500)
committerGitHub <noreply@github.com>
Tue, 29 Jun 2021 14:45:45 +0000 (17:45 +0300)
js/src/base-component.js
js/tests/unit/base-component.spec.js

index 62aa4adf17f2442a4061a5c7bdea8a78bf6bbaf6..ea0ad6c24626d194c29acb9ba97c37438a0fe530 100644 (file)
@@ -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 = {}) {
index 1000f2841d7e27442f5fc0be844e1561ae5fb278..b8ec83f122b7ad51819de697bfe49bb18090a6b6 100644 (file)
@@ -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 = '<div></div>'