diff options
Diffstat (limited to 'spec/frontend/boards/components/board_card_spec.js')
-rw-r--r-- | spec/frontend/boards/components/board_card_spec.js | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/spec/frontend/boards/components/board_card_spec.js b/spec/frontend/boards/components/board_card_spec.js index f0d40af94fe..11f9a4f6ff2 100644 --- a/spec/frontend/boards/components/board_card_spec.js +++ b/spec/frontend/boards/components/board_card_spec.js @@ -4,11 +4,14 @@ import Vue, { nextTick } from 'vue'; import Vuex from 'vuex'; import VueApollo from 'vue-apollo'; +import waitForPromises from 'helpers/wait_for_promises'; import createMockApollo from 'helpers/mock_apollo_helper'; import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; import BoardCard from '~/boards/components/board_card.vue'; import BoardCardInner from '~/boards/components/board_card_inner.vue'; import { inactiveId } from '~/boards/constants'; +import selectedBoardItemsQuery from '~/boards/graphql/client/selected_board_items.query.graphql'; +import isShowingLabelsQuery from '~/graphql_shared/client/is_showing_labels.query.graphql'; import { mockLabelList, mockIssue, DEFAULT_COLOR } from '../mock_data'; describe('Board card', () => { @@ -20,9 +23,11 @@ describe('Board card', () => { Vue.use(VueApollo); const mockSetActiveBoardItemResolver = jest.fn(); + const mockSetSelectedBoardItemsResolver = jest.fn(); const mockApollo = createMockApollo([], { Mutation: { setActiveBoardItem: mockSetActiveBoardItemResolver, + setSelectedBoardItems: mockSetSelectedBoardItemsResolver, }, }); @@ -49,7 +54,21 @@ describe('Board card', () => { provide = {}, stubs = { BoardCardInner }, item = mockIssue, + selectedBoardItems = [], } = {}) => { + mockApollo.clients.defaultClient.cache.writeQuery({ + query: isShowingLabelsQuery, + data: { + isShowingLabels: true, + }, + }); + mockApollo.clients.defaultClient.cache.writeQuery({ + query: selectedBoardItemsQuery, + data: { + selectedBoardItems, + }, + }); + wrapper = shallowMountExtended(BoardCard, { apolloProvider: mockApollo, stubs: { @@ -99,7 +118,7 @@ describe('Board card', () => { describe('when GlLabel is clicked in BoardCardInner', () => { it('doesnt call toggleBoardItem', () => { - createStore({ initialState: { isShowingLabels: true } }); + createStore(); mountComponent(); wrapper.findComponent(GlLabel).trigger('mouseup'); @@ -132,10 +151,9 @@ describe('Board card', () => { createStore({ initialState: { activeId: inactiveId, - selectedBoardItems: [mockIssue], }, }); - mountComponent(); + mountComponent({ selectedBoardItems: [mockIssue.id] }); expect(wrapper.classes()).toContain('multi-select'); expect(wrapper.classes()).not.toContain('is-active'); @@ -163,13 +181,17 @@ describe('Board card', () => { window.gon = { features: { boardMultiSelect: true } }; }); - it('should call vuex action "multiSelectBoardItem" with correct parameters', async () => { + it('should call setSelectedBoardItemsMutation with correct parameters', async () => { await multiSelectCard(); - expect(mockActions.toggleBoardItemMultiSelection).toHaveBeenCalledTimes(1); - expect(mockActions.toggleBoardItemMultiSelection).toHaveBeenCalledWith( + expect(mockSetSelectedBoardItemsResolver).toHaveBeenCalledTimes(1); + expect(mockSetSelectedBoardItemsResolver).toHaveBeenCalledWith( expect.any(Object), - mockIssue, + { + itemId: mockIssue.id, + }, + expect.anything(), + expect.anything(), ); }); }); @@ -240,6 +262,7 @@ describe('Board card', () => { it('set active board item on client when clicking on card', async () => { await selectCard(); + await waitForPromises(); expect(mockSetActiveBoardItemResolver).toHaveBeenCalledWith( {}, |