From 77ffb938e28277459719e8f3d8f4c66d31f74ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Chalifour?= Date: Thu, 26 Sep 2019 08:49:45 -0700 Subject: [PATCH] fix(instantsearch): return instance in widgets methods (#4143) --- src/lib/InstantSearch.ts | 10 ++++-- src/lib/__tests__/InstantSearch-test.js | 46 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/lib/InstantSearch.ts b/src/lib/InstantSearch.ts index 57fa63097b..59060c696d 100644 --- a/src/lib/InstantSearch.ts +++ b/src/lib/InstantSearch.ts @@ -275,7 +275,8 @@ See ${createDocumentationLink({ false, 'addWidget will still be supported in 4.x releases, but not further. It is replaced by `addWidgets([widget])`' ); - this.addWidgets([widget]); + + return this.addWidgets([widget]); } /** @@ -307,6 +308,8 @@ See ${createDocumentationLink({ } this.mainIndex.addWidgets(widgets); + + return this; } /** @@ -321,7 +324,8 @@ See ${createDocumentationLink({ false, 'removeWidget will still be supported in 4.x releases, but not further. It is replaced by `removeWidgets([widget])`' ); - this.removeWidgets([widget]); + + return this.removeWidgets([widget]); } /** @@ -346,6 +350,8 @@ See ${createDocumentationLink({ } this.mainIndex.removeWidgets(widgets); + + return this; } /** diff --git a/src/lib/__tests__/InstantSearch-test.js b/src/lib/__tests__/InstantSearch-test.js index 0c335b85d8..9baff9cd97 100644 --- a/src/lib/__tests__/InstantSearch-test.js +++ b/src/lib/__tests__/InstantSearch-test.js @@ -309,6 +309,26 @@ describe('addWidget(s)', () => { expect(search.mainIndex.getWidgets()).toHaveLength(1); }); + + it('returns the search instance when calling `addWidget`', () => { + const searchClient = createSearchClient(); + const search = new InstantSearch({ + indexName: 'indexName', + searchClient, + }); + + expect(search.addWidget(createWidget())).toBe(search); + }); + + it('returns the search instance when calling `addWidgets`', () => { + const searchClient = createSearchClient(); + const search = new InstantSearch({ + indexName: 'indexName', + searchClient, + }); + + expect(search.addWidgets([createWidget()])).toBe(search); + }); }); describe('removeWidget(s)', () => { @@ -349,6 +369,32 @@ describe('removeWidget(s)', () => { expect(search.mainIndex.getWidgets()).toHaveLength(0); }); + + it('returns the search instance when calling `removeWidget`', () => { + const searchClient = createSearchClient(); + const search = new InstantSearch({ + indexName: 'indexName', + searchClient, + }); + + const widget = createWidget(); + search.addWidget(widget); + + expect(search.removeWidget(widget)).toBe(search); + }); + + it('returns the search instance when calling `removeWidgets`', () => { + const searchClient = createSearchClient(); + const search = new InstantSearch({ + indexName: 'indexName', + searchClient, + }); + + const widget = createWidget(); + search.addWidgets([widget]); + + expect(search.removeWidgets([widget])).toBe(search); + }); }); describe('start', () => {