summaryrefslogtreecommitdiff
path: root/spec/frontend/vue_mr_widget
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/vue_mr_widget')
-rw-r--r--spec/frontend/vue_mr_widget/components/extensions/index_spec.js31
-rw-r--r--spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js35
-rw-r--r--spec/frontend/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js4
-rw-r--r--spec/frontend/vue_mr_widget/components/states/mr_widget_wip_spec.js2
-rw-r--r--spec/frontend/vue_mr_widget/mr_widget_options_spec.js15
5 files changed, 41 insertions, 46 deletions
diff --git a/spec/frontend/vue_mr_widget/components/extensions/index_spec.js b/spec/frontend/vue_mr_widget/components/extensions/index_spec.js
new file mode 100644
index 00000000000..8f6fe3cd37a
--- /dev/null
+++ b/spec/frontend/vue_mr_widget/components/extensions/index_spec.js
@@ -0,0 +1,31 @@
+import { registerExtension, extensions } from '~/vue_merge_request_widget/components/extensions';
+import ExtensionBase from '~/vue_merge_request_widget/components/extensions/base.vue';
+
+describe('MR widget extension registering', () => {
+ it('registers a extension', () => {
+ registerExtension({
+ name: 'Test',
+ props: ['helloWorld'],
+ computed: {
+ test() {},
+ },
+ methods: {
+ test() {},
+ },
+ });
+
+ expect(extensions[0]).toEqual(
+ expect.objectContaining({
+ extends: ExtensionBase,
+ name: 'Test',
+ props: ['helloWorld'],
+ computed: {
+ test: expect.any(Function),
+ },
+ methods: {
+ test: expect.any(Function),
+ },
+ }),
+ );
+ });
+});
diff --git a/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js b/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js
index 015f8bbac51..266c906ba60 100644
--- a/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js
+++ b/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js
@@ -1,13 +1,7 @@
import Vue from 'vue';
-import Mousetrap from 'mousetrap';
import mountComponent from 'helpers/vue_mount_component_helper';
import headerComponent from '~/vue_merge_request_widget/components/mr_widget_header.vue';
-jest.mock('mousetrap', () => ({
- bind: jest.fn(),
- unbind: jest.fn(),
-}));
-
describe('MRWidgetHeader', () => {
let vm;
let Component;
@@ -136,35 +130,6 @@ describe('MRWidgetHeader', () => {
it('renders target branch', () => {
expect(vm.$el.querySelector('.js-target-branch').textContent.trim()).toEqual('master');
});
-
- describe('keyboard shortcuts', () => {
- it('binds a keyboard shortcut handler to the "b" key', () => {
- expect(Mousetrap.bind).toHaveBeenCalledWith('b', expect.any(Function));
- });
-
- it('triggers a click on the "copy to clipboard" button when the handler is executed', () => {
- const testClickHandler = jest.fn();
- vm.$refs.copyBranchNameButton.$el.addEventListener('click', testClickHandler);
-
- // Get a reference to the function that was assigned to the "b" shortcut key.
- const shortcutHandler = Mousetrap.bind.mock.calls[0][1];
-
- expect(testClickHandler).not.toHaveBeenCalled();
-
- // Simulate Mousetrap calling the function.
- shortcutHandler();
-
- expect(testClickHandler).toHaveBeenCalledTimes(1);
- });
-
- it('unbinds the keyboard shortcut when the component is destroyed', () => {
- expect(Mousetrap.unbind).not.toHaveBeenCalled();
-
- vm.$destroy();
-
- expect(Mousetrap.unbind).toHaveBeenCalledWith('b');
- });
- });
});
describe('with an open merge request', () => {
diff --git a/spec/frontend/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js b/spec/frontend/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js
index 5c7e6a87c16..56832f82b05 100644
--- a/spec/frontend/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js
+++ b/spec/frontend/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js
@@ -1,5 +1,5 @@
import { shallowMount } from '@vue/test-utils';
-import { GlDeprecatedDropdownItem } from '@gitlab/ui';
+import { GlDropdownItem } from '@gitlab/ui';
import CommitMessageDropdown from '~/vue_merge_request_widget/components/states/commit_message_dropdown.vue';
const commits = [
@@ -39,7 +39,7 @@ describe('Commits message dropdown component', () => {
wrapper.destroy();
});
- const findDropdownElements = () => wrapper.findAll(GlDeprecatedDropdownItem);
+ const findDropdownElements = () => wrapper.findAll(GlDropdownItem);
const findFirstDropdownElement = () => findDropdownElements().at(0);
it('should have 3 elements in dropdown list', () => {
diff --git a/spec/frontend/vue_mr_widget/components/states/mr_widget_wip_spec.js b/spec/frontend/vue_mr_widget/components/states/mr_widget_wip_spec.js
index 6ccf1e1f56b..907906ebe98 100644
--- a/spec/frontend/vue_mr_widget/components/states/mr_widget_wip_spec.js
+++ b/spec/frontend/vue_mr_widget/components/states/mr_widget_wip_spec.js
@@ -84,7 +84,7 @@ describe('Wip', () => {
it('should have correct elements', () => {
expect(el.classList.contains('mr-widget-body')).toBeTruthy();
- expect(el.innerText).toContain('This merge request is still a work in progress.');
+ expect(el.innerText).toContain('This merge request is still a draft.');
expect(el.querySelector('button').getAttribute('disabled')).toBeTruthy();
expect(el.querySelector('button').innerText).toContain('Merge');
expect(el.querySelector('.js-remove-wip').innerText.replace(/\s\s+/g, ' ')).toContain(
diff --git a/spec/frontend/vue_mr_widget/mr_widget_options_spec.js b/spec/frontend/vue_mr_widget/mr_widget_options_spec.js
index 25c967996e3..d6f85dcfcc7 100644
--- a/spec/frontend/vue_mr_widget/mr_widget_options_spec.js
+++ b/spec/frontend/vue_mr_widget/mr_widget_options_spec.js
@@ -1,7 +1,6 @@
import Vue from 'vue';
import MockAdapter from 'axios-mock-adapter';
import mountComponent from 'helpers/vue_mount_component_helper';
-import { withGonExperiment } from 'helpers/experimentation_helper';
import Api from '~/api';
import axios from '~/lib/utils/axios_utils';
import mrWidgetOptions from '~/vue_merge_request_widget/mr_widget_options.vue';
@@ -850,7 +849,7 @@ describe('mrWidgetOptions', () => {
});
});
- describe('suggestPipeline Experiment', () => {
+ describe('suggestPipeline feature flag', () => {
beforeEach(() => {
mock.onAny().reply(200);
@@ -859,10 +858,10 @@ describe('mrWidgetOptions', () => {
jest.spyOn(console, 'warn').mockImplementation();
});
- describe('given experiment is enabled', () => {
- withGonExperiment('suggestPipeline');
-
+ describe('given feature flag is enabled', () => {
beforeEach(() => {
+ gon.features = { suggestPipeline: true };
+
createComponent();
vm.mr.hasCI = false;
@@ -893,10 +892,10 @@ describe('mrWidgetOptions', () => {
});
});
- describe('given suggestPipeline experiment is not enabled', () => {
- withGonExperiment('suggestPipeline', false);
-
+ describe('given feature flag is not enabled', () => {
beforeEach(() => {
+ gon.features = { suggestPipeline: false };
+
createComponent();
vm.mr.hasCI = false;