diff options
Diffstat (limited to 'spec/frontend/boards/components/board_content_spec.js')
-rw-r--r-- | spec/frontend/boards/components/board_content_spec.js | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/spec/frontend/boards/components/board_content_spec.js b/spec/frontend/boards/components/board_content_spec.js index bb1650cd2cc..bf491029c41 100644 --- a/spec/frontend/boards/components/board_content_spec.js +++ b/spec/frontend/boards/components/board_content_spec.js @@ -1,15 +1,20 @@ import { GlAlert } from '@gitlab/ui'; import { shallowMount } from '@vue/test-utils'; import Vue, { nextTick } from 'vue'; +import VueApollo from 'vue-apollo'; import Draggable from 'vuedraggable'; import Vuex from 'vuex'; +import waitForPromises from 'helpers/wait_for_promises'; +import createMockApollo from 'helpers/mock_apollo_helper'; import EpicsSwimlanes from 'ee_component/boards/components/epics_swimlanes.vue'; import getters from 'ee_else_ce/boards/stores/getters'; +import boardListsQuery from 'ee_else_ce/boards/graphql/board_lists.query.graphql'; import BoardColumn from '~/boards/components/board_column.vue'; import BoardContent from '~/boards/components/board_content.vue'; import BoardContentSidebar from '~/boards/components/board_content_sidebar.vue'; -import { mockLists } from '../mock_data'; +import { mockLists, boardListsQueryResponse } from '../mock_data'; +Vue.use(VueApollo); Vue.use(Vuex); const actions = { @@ -18,6 +23,7 @@ const actions = { describe('BoardContent', () => { let wrapper; + let fakeApollo; window.gon = {}; const defaultState = { @@ -35,19 +41,33 @@ describe('BoardContent', () => { }); }; - const createComponent = ({ state, props = {}, canAdminList = true } = {}) => { + const createComponent = ({ + state, + props = {}, + canAdminList = true, + isApolloBoard = false, + issuableType = 'issue', + boardListQueryHandler = jest.fn().mockResolvedValue(boardListsQueryResponse), + } = {}) => { + fakeApollo = createMockApollo([[boardListsQuery, boardListQueryHandler]]); + const store = createStore({ ...defaultState, ...state, }); wrapper = shallowMount(BoardContent, { + apolloProvider: fakeApollo, propsData: { - lists: mockLists, disabled: false, + boardId: 'gid://gitlab/Board/1', ...props, }, provide: { canAdminList, + boardType: 'group', + fullPath: 'gitlab-org/gitlab', + issuableType, + isApolloBoard, }, store, }); @@ -78,6 +98,7 @@ describe('BoardContent', () => { afterEach(() => { wrapper.destroy(); + fakeApollo = null; }); describe('default', () => { @@ -112,7 +133,7 @@ describe('BoardContent', () => { describe('when issuableType is not issue', () => { beforeEach(() => { - createComponent({ state: { issuableType: 'foo' } }); + createComponent({ issuableType: 'foo' }); }); it('does not render BoardContentSidebar', () => { @@ -139,4 +160,19 @@ describe('BoardContent', () => { expect(wrapper.findComponent(Draggable).exists()).toBe(false); }); }); + + describe('when Apollo boards FF is on', () => { + beforeEach(async () => { + createComponent({ isApolloBoard: true }); + await waitForPromises(); + }); + + it('renders a BoardColumn component per list', () => { + expect(wrapper.findAllComponents(BoardColumn)).toHaveLength(mockLists.length); + }); + + it('renders BoardContentSidebar', () => { + expect(wrapper.findComponent(BoardContentSidebar).exists()).toBe(true); + }); + }); }); |