diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2019-06-04 14:48:46 +0000 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2019-06-04 14:48:46 +0000 |
commit | 867ce78799d850adcd61611e5a3b2ad5df8a5f61 (patch) | |
tree | 33e1462b2bf4821131f07edfc9f5efedd762d5a3 /spec | |
parent | 57f9856492775fef8e0bedc503e207b1d372f738 (diff) | |
download | gitlab-ce-867ce78799d850adcd61611e5a3b2ad5df8a5f61.tar.gz |
Extract toggleFilter() into issue boards store
Diffstat (limited to 'spec')
-rw-r--r-- | spec/javascripts/boards/boards_store_spec.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/javascripts/boards/boards_store_spec.js b/spec/javascripts/boards/boards_store_spec.js index 9b125593869..e77768e3597 100644 --- a/spec/javascripts/boards/boards_store_spec.js +++ b/spec/javascripts/boards/boards_store_spec.js @@ -12,6 +12,7 @@ import '~/boards/models/issue'; import '~/boards/models/list'; import '~/boards/services/board_service'; import boardsStore from '~/boards/stores/boards_store'; +import eventHub from '~/boards/eventhub'; import { listObj, listObjDuplicate, boardsMockInterceptor, mockBoardService } from './mock_data'; describe('Store', () => { @@ -53,6 +54,39 @@ describe('Store', () => { }); }); + describe('toggleFilter', () => { + const dummyFilter = 'x=42'; + let updateTokensSpy; + + beforeEach(() => { + updateTokensSpy = jasmine.createSpy('updateTokens'); + eventHub.$once('updateTokens', updateTokensSpy); + + // prevent using window.history + spyOn(boardsStore, 'updateFiltersUrl').and.callFake(() => {}); + }); + + it('adds the filter if it is not present', () => { + boardsStore.filter.path = 'something'; + + boardsStore.toggleFilter(dummyFilter); + + expect(boardsStore.filter.path).toEqual(`something&${dummyFilter}`); + expect(updateTokensSpy).toHaveBeenCalled(); + expect(boardsStore.updateFiltersUrl).toHaveBeenCalled(); + }); + + it('removes the filter if it is present', () => { + boardsStore.filter.path = `something&${dummyFilter}`; + + boardsStore.toggleFilter(dummyFilter); + + expect(boardsStore.filter.path).toEqual('something'); + expect(updateTokensSpy).toHaveBeenCalled(); + expect(boardsStore.updateFiltersUrl).toHaveBeenCalled(); + }); + }); + describe('lists', () => { it('creates new list without persisting to DB', () => { boardsStore.addList(listObj); |