summaryrefslogtreecommitdiff
path: root/spec/javascripts/vue_mr_widget
diff options
context:
space:
mode:
authorWinnie Hellmann <winnie@gitlab.com>2019-03-23 17:52:35 +0100
committerWinnie Hellmann <winnie@gitlab.com>2019-03-23 17:53:46 +0100
commit514ee63826e47229bfd03bdbb740f2dd1eae1d03 (patch)
tree3f0d96a4402e8aa54c375084cc4c5e6cf546824b /spec/javascripts/vue_mr_widget
parent6d330015dfdb1979a0773c87c53b84cc86b28a6d (diff)
downloadgitlab-ce-514ee63826e47229bfd03bdbb740f2dd1eae1d03.tar.gz
Move some tests from Karma to Jest
Diffstat (limited to 'spec/javascripts/vue_mr_widget')
-rw-r--r--spec/javascripts/vue_mr_widget/components/mr_widget_container_spec.js51
-rw-r--r--spec/javascripts/vue_mr_widget/components/mr_widget_icon_spec.js30
-rw-r--r--spec/javascripts/vue_mr_widget/components/states/commit_edit_spec.js85
-rw-r--r--spec/javascripts/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js61
-rw-r--r--spec/javascripts/vue_mr_widget/components/states/mr_widget_commits_header_spec.js136
-rw-r--r--spec/javascripts/vue_mr_widget/stores/get_state_key_spec.js103
6 files changed, 0 insertions, 466 deletions
diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_container_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_container_spec.js
deleted file mode 100644
index 16c8c939a6f..00000000000
--- a/spec/javascripts/vue_mr_widget/components/mr_widget_container_spec.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import { shallowMount, createLocalVue } from '@vue/test-utils';
-import MrWidgetContainer from '~/vue_merge_request_widget/components/mr_widget_container.vue';
-
-const BODY_HTML = '<div class="test-body">Hello World</div>';
-const FOOTER_HTML = '<div class="test-footer">Goodbye!</div>';
-
-describe('MrWidgetContainer', () => {
- let wrapper;
-
- const factory = (options = {}) => {
- const localVue = createLocalVue();
-
- wrapper = shallowMount(localVue.extend(MrWidgetContainer), {
- localVue,
- ...options,
- });
- };
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- it('has layout', () => {
- factory();
-
- expect(wrapper.is('.mr-widget-heading')).toBe(true);
- expect(wrapper.contains('.mr-widget-content')).toBe(true);
- });
-
- it('accepts default slot', () => {
- factory({
- slots: {
- default: BODY_HTML,
- },
- });
-
- expect(wrapper.contains('.mr-widget-content .test-body')).toBe(true);
- });
-
- it('accepts footer slot', () => {
- factory({
- slots: {
- default: BODY_HTML,
- footer: FOOTER_HTML,
- },
- });
-
- expect(wrapper.contains('.mr-widget-content .test-body')).toBe(true);
- expect(wrapper.contains('.test-footer')).toBe(true);
- });
-});
diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_icon_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_icon_spec.js
deleted file mode 100644
index f7c2376eebf..00000000000
--- a/spec/javascripts/vue_mr_widget/components/mr_widget_icon_spec.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import { shallowMount, createLocalVue } from '@vue/test-utils';
-import MrWidgetIcon from '~/vue_merge_request_widget/components/mr_widget_icon.vue';
-import Icon from '~/vue_shared/components/icon.vue';
-
-const TEST_ICON = 'commit';
-
-describe('MrWidgetIcon', () => {
- let wrapper;
-
- beforeEach(() => {
- const localVue = createLocalVue();
-
- wrapper = shallowMount(localVue.extend(MrWidgetIcon), {
- propsData: {
- name: TEST_ICON,
- },
- sync: false,
- localVue,
- });
- });
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- it('renders icon and container', () => {
- expect(wrapper.is('.circle-icon-container')).toBe(true);
- expect(wrapper.find(Icon).props('name')).toEqual(TEST_ICON);
- });
-});
diff --git a/spec/javascripts/vue_mr_widget/components/states/commit_edit_spec.js b/spec/javascripts/vue_mr_widget/components/states/commit_edit_spec.js
deleted file mode 100644
index 994d6255324..00000000000
--- a/spec/javascripts/vue_mr_widget/components/states/commit_edit_spec.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import { createLocalVue, shallowMount } from '@vue/test-utils';
-import CommitEdit from '~/vue_merge_request_widget/components/states/commit_edit.vue';
-
-const localVue = createLocalVue();
-const testCommitMessage = 'Test commit message';
-const testLabel = 'Test label';
-const testInputId = 'test-input-id';
-
-describe('Commits edit component', () => {
- let wrapper;
-
- const createComponent = (slots = {}) => {
- wrapper = shallowMount(localVue.extend(CommitEdit), {
- localVue,
- sync: false,
- propsData: {
- value: testCommitMessage,
- label: testLabel,
- inputId: testInputId,
- },
- slots: {
- ...slots,
- },
- });
- };
-
- beforeEach(() => {
- createComponent();
- });
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- const findTextarea = () => wrapper.find('.form-control');
-
- it('has a correct label', () => {
- const labelElement = wrapper.find('.col-form-label');
-
- expect(labelElement.text()).toBe(testLabel);
- });
-
- describe('textarea', () => {
- it('has a correct ID', () => {
- expect(findTextarea().attributes('id')).toBe(testInputId);
- });
-
- it('has a correct value', () => {
- expect(findTextarea().element.value).toBe(testCommitMessage);
- });
-
- it('emits an input event and receives changed value', () => {
- const changedCommitMessage = 'Changed commit message';
-
- findTextarea().element.value = changedCommitMessage;
- findTextarea().trigger('input');
-
- expect(wrapper.emitted().input[0]).toEqual([changedCommitMessage]);
- expect(findTextarea().element.value).toBe(changedCommitMessage);
- });
- });
-
- describe('when slots are present', () => {
- beforeEach(() => {
- createComponent({
- header: `<div class="test-header">${testCommitMessage}</div>`,
- checkbox: `<label slot="checkbox" class="test-checkbox">${testLabel}</label >`,
- });
- });
-
- it('renders header slot correctly', () => {
- const headerSlotElement = wrapper.find('.test-header');
-
- expect(headerSlotElement.exists()).toBe(true);
- expect(headerSlotElement.text()).toBe(testCommitMessage);
- });
-
- it('renders checkbox slot correctly', () => {
- const checkboxSlotElement = wrapper.find('.test-checkbox');
-
- expect(checkboxSlotElement.exists()).toBe(true);
- expect(checkboxSlotElement.text()).toBe(testLabel);
- });
- });
-});
diff --git a/spec/javascripts/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js b/spec/javascripts/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js
deleted file mode 100644
index daf1cc2d98b..00000000000
--- a/spec/javascripts/vue_mr_widget/components/states/mr_widget_commit_message_dropdown_spec.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { createLocalVue, shallowMount } from '@vue/test-utils';
-import { GlDropdownItem } from '@gitlab/ui';
-import CommitMessageDropdown from '~/vue_merge_request_widget/components/states/commit_message_dropdown.vue';
-
-const localVue = createLocalVue();
-const commits = [
- {
- title: 'Commit 1',
- short_id: '78d5b7',
- message: 'Update test.txt',
- },
- {
- title: 'Commit 2',
- short_id: '34cbe28b',
- message: 'Fixed test',
- },
- {
- title: 'Commit 3',
- short_id: 'fa42932a',
- message: 'Added changelog',
- },
-];
-
-describe('Commits message dropdown component', () => {
- let wrapper;
-
- const createComponent = () => {
- wrapper = shallowMount(localVue.extend(CommitMessageDropdown), {
- localVue,
- sync: false,
- propsData: {
- commits,
- },
- });
- };
-
- beforeEach(() => {
- createComponent();
- });
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- const findDropdownElements = () => wrapper.findAll(GlDropdownItem);
- const findFirstDropdownElement = () => findDropdownElements().at(0);
-
- it('should have 3 elements in dropdown list', () => {
- expect(findDropdownElements().length).toBe(3);
- });
-
- it('should have correct message for the first dropdown list element', () => {
- expect(findFirstDropdownElement().text()).toBe('78d5b7 Commit 1');
- });
-
- it('should emit a commit title on selecting commit', () => {
- findFirstDropdownElement().vm.$emit('click');
-
- expect(wrapper.emitted().input[0]).toEqual(['Update test.txt']);
- });
-});
diff --git a/spec/javascripts/vue_mr_widget/components/states/mr_widget_commits_header_spec.js b/spec/javascripts/vue_mr_widget/components/states/mr_widget_commits_header_spec.js
deleted file mode 100644
index 9ee2f88c78d..00000000000
--- a/spec/javascripts/vue_mr_widget/components/states/mr_widget_commits_header_spec.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import { createLocalVue, shallowMount } from '@vue/test-utils';
-import CommitsHeader from '~/vue_merge_request_widget/components/states/commits_header.vue';
-import Icon from '~/vue_shared/components/icon.vue';
-
-const localVue = createLocalVue();
-
-describe('Commits header component', () => {
- let wrapper;
-
- const createComponent = props => {
- wrapper = shallowMount(localVue.extend(CommitsHeader), {
- localVue,
- sync: false,
- propsData: {
- isSquashEnabled: false,
- targetBranch: 'master',
- commitsCount: 5,
- isFastForwardEnabled: false,
- ...props,
- },
- });
- };
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- const findHeaderWrapper = () => wrapper.find('.js-mr-widget-commits-count');
- const findCommitToggle = () => wrapper.find('.commit-edit-toggle');
- const findIcon = () => wrapper.find(Icon);
- const findCommitsCountMessage = () => wrapper.find('.commits-count-message');
- const findTargetBranchMessage = () => wrapper.find('.label-branch');
- const findModifyButton = () => wrapper.find('.modify-message-button');
-
- describe('when fast-forward is enabled', () => {
- beforeEach(() => {
- createComponent({
- isFastForwardEnabled: true,
- isSquashEnabled: true,
- });
- });
-
- it('has commits count message showing 1 commit', () => {
- expect(findCommitsCountMessage().text()).toBe('1 commit');
- });
-
- it('has button with modify commit message', () => {
- expect(findModifyButton().text()).toBe('Modify commit message');
- });
-
- it('does not have merge commit part of the message', () => {
- expect(findHeaderWrapper().text()).not.toContain('1 merge commit');
- });
- });
-
- describe('when collapsed', () => {
- it('toggle has aria-label equal to Expand', () => {
- createComponent();
-
- expect(findCommitToggle().attributes('aria-label')).toBe('Expand');
- });
-
- it('has a chevron-right icon', () => {
- createComponent();
- wrapper.setData({ expanded: false });
-
- expect(findIcon().props('name')).toBe('chevron-right');
- });
-
- describe('when squash is disabled', () => {
- beforeEach(() => {
- createComponent();
- });
-
- it('has commits count message showing correct amount of commits', () => {
- expect(findCommitsCountMessage().text()).toBe('5 commits');
- });
-
- it('has button with modify merge commit message', () => {
- expect(findModifyButton().text()).toBe('Modify merge commit');
- });
- });
-
- describe('when squash is enabled', () => {
- beforeEach(() => {
- createComponent({ isSquashEnabled: true });
- });
-
- it('has commits count message showing one commit when squash is enabled', () => {
- expect(findCommitsCountMessage().text()).toBe('1 commit');
- });
-
- it('has button with modify commit messages text', () => {
- expect(findModifyButton().text()).toBe('Modify commit messages');
- });
- });
-
- it('has correct target branch displayed', () => {
- createComponent();
-
- expect(findTargetBranchMessage().text()).toBe('master');
- });
-
- it('does has merge commit part of the message', () => {
- expect(findHeaderWrapper().text()).toContain('1 merge commit');
- });
- });
-
- describe('when expanded', () => {
- beforeEach(() => {
- createComponent();
- wrapper.setData({ expanded: true });
- });
-
- it('toggle has aria-label equal to collapse', done => {
- wrapper.vm.$nextTick(() => {
- expect(findCommitToggle().attributes('aria-label')).toBe('Collapse');
- done();
- });
- });
-
- it('has a chevron-down icon', done => {
- wrapper.vm.$nextTick(() => {
- expect(findIcon().props('name')).toBe('chevron-down');
- done();
- });
- });
-
- it('has a collapse text', done => {
- wrapper.vm.$nextTick(() => {
- expect(findHeaderWrapper().text()).toBe('Collapse');
- done();
- });
- });
- });
-});
diff --git a/spec/javascripts/vue_mr_widget/stores/get_state_key_spec.js b/spec/javascripts/vue_mr_widget/stores/get_state_key_spec.js
deleted file mode 100644
index b356ea85cad..00000000000
--- a/spec/javascripts/vue_mr_widget/stores/get_state_key_spec.js
+++ /dev/null
@@ -1,103 +0,0 @@
-import getStateKey from '~/vue_merge_request_widget/stores/get_state_key';
-
-describe('getStateKey', () => {
- it('should return proper state name', () => {
- const context = {
- mergeStatus: 'checked',
- mergeWhenPipelineSucceeds: false,
- canMerge: true,
- onlyAllowMergeIfPipelineSucceeds: false,
- isPipelineFailed: false,
- hasMergeableDiscussionsState: false,
- isPipelineBlocked: false,
- canBeMerged: false,
- };
- const data = {
- project_archived: false,
- branch_missing: false,
- commits_count: 2,
- has_conflicts: false,
- work_in_progress: false,
- };
- const bound = getStateKey.bind(context, data);
-
- expect(bound()).toEqual(null);
-
- context.canBeMerged = true;
-
- expect(bound()).toEqual('readyToMerge');
-
- context.canMerge = false;
-
- expect(bound()).toEqual('notAllowedToMerge');
-
- context.mergeWhenPipelineSucceeds = true;
-
- expect(bound()).toEqual('mergeWhenPipelineSucceeds');
-
- context.isSHAMismatch = true;
-
- expect(bound()).toEqual('shaMismatch');
-
- context.isPipelineBlocked = true;
-
- expect(bound()).toEqual('pipelineBlocked');
-
- context.hasMergeableDiscussionsState = true;
-
- expect(bound()).toEqual('unresolvedDiscussions');
-
- context.onlyAllowMergeIfPipelineSucceeds = true;
- context.isPipelineFailed = true;
-
- expect(bound()).toEqual('pipelineFailed');
-
- data.work_in_progress = true;
-
- expect(bound()).toEqual('workInProgress');
-
- data.has_conflicts = true;
-
- expect(bound()).toEqual('conflicts');
-
- context.mergeStatus = 'unchecked';
-
- expect(bound()).toEqual('checking');
-
- data.commits_count = 0;
-
- expect(bound()).toEqual('nothingToMerge');
-
- data.branch_missing = true;
-
- expect(bound()).toEqual('missingBranch');
-
- data.project_archived = true;
-
- expect(bound()).toEqual('archived');
- });
-
- it('returns rebased state key', () => {
- const context = {
- mergeStatus: 'checked',
- mergeWhenPipelineSucceeds: false,
- canMerge: true,
- onlyAllowMergeIfPipelineSucceeds: true,
- isPipelineFailed: true,
- hasMergeableDiscussionsState: false,
- isPipelineBlocked: false,
- canBeMerged: false,
- shouldBeRebased: true,
- };
- const data = {
- project_archived: false,
- branch_missing: false,
- commits_count: 2,
- has_conflicts: false,
- work_in_progress: false,
- };
- const bound = getStateKey.bind(context, data);
-
- expect(bound()).toEqual('rebase');
- });
-});