From fb74992454f9cfa1027523a3448036e07fc67f20 Mon Sep 17 00:00:00 2001 From: Jason Rudolph Date: Wed, 8 Nov 2017 17:44:32 -0500 Subject: [PATCH 1/2] Enhance test to catch bug reported in #16135 Enhance the fake jQuery object to more closely match a real jQuery object. With this change, the test fails, thus allowing us to reproduce the regression reported in #16135. --- spec/tooltip-manager-spec.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/tooltip-manager-spec.js b/spec/tooltip-manager-spec.js index 65587839f..3a6b56a1b 100644 --- a/spec/tooltip-manager-spec.js +++ b/spec/tooltip-manager-spec.js @@ -108,8 +108,12 @@ describe('TooltipManager', () => { const element2 = document.createElement('div') jasmine.attachToDOM(element2) - const fakeJqueryWrapper = [element, element2] - fakeJqueryWrapper.jquery = 'any-version' + const fakeJqueryWrapper = { + 0: element, + 1: element2, + length: 2, + jquery: 'any-version' + } const disposable = manager.add(fakeJqueryWrapper, {title: 'Title'}) hover(element, () => expect(document.body.querySelector('.tooltip')).toHaveText('Title')) From 0e82b8bb42ed9ca4a6a12497ffd0622fff0d45e8 Mon Sep 17 00:00:00 2001 From: Jason Rudolph Date: Wed, 8 Nov 2017 17:56:45 -0500 Subject: [PATCH 2/2] :bug: Fix #16135 --- src/tooltip-manager.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tooltip-manager.js b/src/tooltip-manager.js index 937f831d1..34f96775b 100644 --- a/src/tooltip-manager.js +++ b/src/tooltip-manager.js @@ -114,7 +114,9 @@ class TooltipManager { add (target, options) { if (target.jquery) { const disposable = new CompositeDisposable() - for (const element of target) { disposable.add(this.add(element, options)) } + for (let i = 0; i < target.length; i++) { + disposable.add(this.add(target[i], options)) + } return disposable }