diff options
Diffstat (limited to 'spec/frontend/vue_shared/components/toggle_labels_spec.js')
-rw-r--r-- | spec/frontend/vue_shared/components/toggle_labels_spec.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/frontend/vue_shared/components/toggle_labels_spec.js b/spec/frontend/vue_shared/components/toggle_labels_spec.js new file mode 100644 index 00000000000..e4b4b7f9e0c --- /dev/null +++ b/spec/frontend/vue_shared/components/toggle_labels_spec.js @@ -0,0 +1,56 @@ +import { GlToggle } from '@gitlab/ui'; +import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createMockApollo from 'helpers/mock_apollo_helper'; +import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import waitForPromises from 'helpers/wait_for_promises'; + +import ToggleLabels from '~/vue_shared/components/toggle_labels.vue'; +import isShowingLabelsQuery from '~/graphql_shared/client/is_showing_labels.query.graphql'; + +Vue.use(VueApollo); + +describe('ToggleLabels', () => { + let wrapper; + + const findToggle = () => wrapper.findComponent(GlToggle); + + const mockSetIsShowingLabelsResolver = jest.fn(); + const mockApollo = createMockApollo([], { + Mutation: { + setIsShowingLabels: mockSetIsShowingLabelsResolver, + }, + }); + + const createComponent = () => { + mockApollo.clients.defaultClient.cache.writeQuery({ + query: isShowingLabelsQuery, + data: { + isShowingLabels: true, + }, + }); + wrapper = shallowMountExtended(ToggleLabels, { + apolloProvider: mockApollo, + }); + }; + + beforeEach(() => { + createComponent(); + }); + + it('calls setIsShowingLabelsMutation on toggle', async () => { + expect(findToggle().props('value')).toBe(true); + findToggle().vm.$emit('change', false); + + await waitForPromises(); + + expect(mockSetIsShowingLabelsResolver).toHaveBeenCalledWith( + {}, + { + isShowingLabels: false, + }, + expect.anything(), + expect.anything(), + ); + }); +}); |