diff options
Diffstat (limited to 'spec/frontend/boards/stores/getters_spec.js')
-rw-r--r-- | spec/frontend/boards/stores/getters_spec.js | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/spec/frontend/boards/stores/getters_spec.js b/spec/frontend/boards/stores/getters_spec.js index 38b2333e679..288143a0f21 100644 --- a/spec/frontend/boards/stores/getters_spec.js +++ b/spec/frontend/boards/stores/getters_spec.js @@ -1,4 +1,6 @@ import getters from '~/boards/stores/getters'; +import { inactiveId } from '~/boards/constants'; +import { mockIssue, mockIssue2, mockIssues, mockIssuesByListId, issues } from '../mock_data'; describe('Boards - Getters', () => { describe('getLabelToggleState', () => { @@ -18,4 +20,114 @@ describe('Boards - Getters', () => { expect(getters.getLabelToggleState(state)).toBe('off'); }); }); + + describe('isSidebarOpen', () => { + it('returns true when activeId is not equal to 0', () => { + const state = { + activeId: 1, + }; + + expect(getters.isSidebarOpen(state)).toBe(true); + }); + + it('returns false when activeId is equal to 0', () => { + const state = { + activeId: inactiveId, + }; + + expect(getters.isSidebarOpen(state)).toBe(false); + }); + }); + + describe('isSwimlanesOn', () => { + afterEach(() => { + window.gon = { features: {} }; + }); + + describe('when boardsWithSwimlanes is true', () => { + beforeEach(() => { + window.gon = { features: { boardsWithSwimlanes: true } }; + }); + + describe('when isShowingEpicsSwimlanes is true', () => { + it('returns true', () => { + const state = { + isShowingEpicsSwimlanes: true, + }; + + expect(getters.isSwimlanesOn(state)).toBe(true); + }); + }); + + describe('when isShowingEpicsSwimlanes is false', () => { + it('returns false', () => { + const state = { + isShowingEpicsSwimlanes: false, + }; + + expect(getters.isSwimlanesOn(state)).toBe(false); + }); + }); + }); + + describe('when boardsWithSwimlanes is false', () => { + describe('when isShowingEpicsSwimlanes is true', () => { + it('returns false', () => { + const state = { + isShowingEpicsSwimlanes: true, + }; + + expect(getters.isSwimlanesOn(state)).toBe(false); + }); + }); + + describe('when isShowingEpicsSwimlanes is false', () => { + it('returns false', () => { + const state = { + isShowingEpicsSwimlanes: false, + }; + + expect(getters.isSwimlanesOn(state)).toBe(false); + }); + }); + }); + }); + + describe('getIssueById', () => { + const state = { issues: { '1': 'issue' } }; + + it.each` + id | expected + ${'1'} | ${'issue'} + ${''} | ${{}} + `('returns $expected when $id is passed to state', ({ id, expected }) => { + expect(getters.getIssueById(state)(id)).toEqual(expected); + }); + }); + + describe('getActiveIssue', () => { + it.each` + id | expected + ${'1'} | ${'issue'} + ${''} | ${{}} + `('returns $expected when $id is passed to state', ({ id, expected }) => { + const state = { issues: { '1': 'issue' }, activeId: id }; + + expect(getters.getActiveIssue(state)).toEqual(expected); + }); + }); + + describe('getIssues', () => { + const boardsState = { + issuesByListId: mockIssuesByListId, + issues, + }; + it('returns issues for a given listId', () => { + const getIssueById = issueId => [mockIssue, mockIssue2].find(({ id }) => id === issueId); + + expect(getters.getIssues(boardsState, { getIssueById })('gid://gitlab/List/2')).toEqual( + mockIssues, + ); + }); + }); }); |