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/deploy_keys/components/action_btn_spec.js')
-rw-r--r--spec/frontend/deploy_keys/components/action_btn_spec.js43
1 files changed, 36 insertions, 7 deletions
diff --git a/spec/frontend/deploy_keys/components/action_btn_spec.js b/spec/frontend/deploy_keys/components/action_btn_spec.js
index c4c7a9aea2d..e94734da4ce 100644
--- a/spec/frontend/deploy_keys/components/action_btn_spec.js
+++ b/spec/frontend/deploy_keys/components/action_btn_spec.js
@@ -1,28 +1,44 @@
+import VueApollo from 'vue-apollo';
+import Vue, { nextTick } from 'vue';
import { GlButton } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
-import { nextTick } from 'vue';
import data from 'test_fixtures/deploy_keys/keys.json';
+import waitForPromises from 'helpers/wait_for_promises';
+import createMockApollo from 'helpers/mock_apollo_helper';
+import enableKeyMutation from '~/deploy_keys/graphql/mutations/enable_key.mutation.graphql';
import actionBtn from '~/deploy_keys/components/action_btn.vue';
-import eventHub from '~/deploy_keys/eventhub';
+
+Vue.use(VueApollo);
describe('Deploy keys action btn', () => {
const deployKey = data.enabled_keys[0];
let wrapper;
+ let enableKeyMock;
const findButton = () => wrapper.findComponent(GlButton);
beforeEach(() => {
+ enableKeyMock = jest.fn();
+
+ const mockResolvers = {
+ Mutation: {
+ enableKey: enableKeyMock,
+ },
+ };
+
+ const apolloProvider = createMockApollo([], mockResolvers);
wrapper = shallowMount(actionBtn, {
propsData: {
deployKey,
- type: 'enable',
category: 'primary',
variant: 'confirm',
icon: 'edit',
+ mutation: enableKeyMutation,
},
slots: {
default: 'Enable',
},
+ apolloProvider,
});
});
@@ -38,13 +54,26 @@ describe('Deploy keys action btn', () => {
});
});
- it('sends eventHub event with btn type', async () => {
- jest.spyOn(eventHub, '$emit').mockImplementation(() => {});
-
+ it('fires the passed mutation', async () => {
findButton().vm.$emit('click');
await nextTick();
- expect(eventHub.$emit).toHaveBeenCalledWith('enable.key', deployKey, expect.anything());
+ expect(enableKeyMock).toHaveBeenCalledWith(
+ expect.anything(),
+ { id: deployKey.id },
+ expect.anything(),
+ expect.anything(),
+ );
+ });
+
+ it('emits the mutation error', async () => {
+ const error = new Error('oops!');
+ enableKeyMock.mockRejectedValue(error);
+ findButton().vm.$emit('click');
+
+ await waitForPromises();
+
+ expect(wrapper.emitted('error')).toEqual([[error]]);
});
it('shows loading spinner after click', async () => {