diff options
Diffstat (limited to 'spec/frontend/sidebar/assignees_realtime_spec.js')
-rw-r--r-- | spec/frontend/sidebar/assignees_realtime_spec.js | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/spec/frontend/sidebar/assignees_realtime_spec.js b/spec/frontend/sidebar/assignees_realtime_spec.js index 2249a1c08b8..ae8f07bf901 100644 --- a/spec/frontend/sidebar/assignees_realtime_spec.js +++ b/spec/frontend/sidebar/assignees_realtime_spec.js @@ -2,11 +2,16 @@ import { shallowMount } from '@vue/test-utils'; import Vue from 'vue'; import VueApollo from 'vue-apollo'; import createMockApollo from 'helpers/mock_apollo_helper'; +import waitForPromises from 'helpers/wait_for_promises'; import AssigneesRealtime from '~/sidebar/components/assignees/assignees_realtime.vue'; import issuableAssigneesSubscription from '~/sidebar/queries/issuable_assignees.subscription.graphql'; import SidebarMediator from '~/sidebar/sidebar_mediator'; import getIssueAssigneesQuery from '~/vue_shared/components/sidebar/queries/get_issue_assignees.query.graphql'; -import Mock, { issuableQueryResponse, subscriptionNullResponse } from './mock_data'; +import Mock, { + issuableQueryResponse, + subscriptionNullResponse, + subscriptionResponse, +} from './mock_data'; Vue.use(VueApollo); @@ -20,7 +25,6 @@ describe('Assignees Realtime', () => { const createComponent = ({ issuableType = 'issue', - issuableId = 1, subscriptionHandler = subscriptionInitialHandler, } = {}) => { fakeApollo = createMockApollo([ @@ -30,7 +34,6 @@ describe('Assignees Realtime', () => { wrapper = shallowMount(AssigneesRealtime, { propsData: { issuableType, - issuableId, queryVariables: { issuableIid: '1', projectPath: 'path/to/project', @@ -60,11 +63,23 @@ describe('Assignees Realtime', () => { }); }); - it('calls the subscription with correct variable for issue', () => { + it('calls the subscription with correct variable for issue', async () => { createComponent(); + await waitForPromises(); expect(subscriptionInitialHandler).toHaveBeenCalledWith({ issuableId: 'gid://gitlab/Issue/1', }); }); + + it('emits an `assigneesUpdated` event on subscription response', async () => { + createComponent({ + subscriptionHandler: jest.fn().mockResolvedValue(subscriptionResponse), + }); + await waitForPromises(); + + expect(wrapper.emitted('assigneesUpdated')).toEqual([ + [{ id: '1', assignees: subscriptionResponse.data.issuableAssigneesUpdated.assignees.nodes }], + ]); + }); }); |