Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/boards/components/board_card_spec.js')
-rw-r--r--spec/frontend/boards/components/board_card_spec.js37
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(
{},