diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2019-03-23 17:52:35 +0100 |
---|---|---|
committer | Winnie Hellmann <winnie@gitlab.com> | 2019-03-23 17:53:46 +0100 |
commit | 514ee63826e47229bfd03bdbb740f2dd1eae1d03 (patch) | |
tree | 3f0d96a4402e8aa54c375084cc4c5e6cf546824b /spec/javascripts/vue_mr_widget | |
parent | 6d330015dfdb1979a0773c87c53b84cc86b28a6d (diff) | |
download | gitlab-ce-514ee63826e47229bfd03bdbb740f2dd1eae1d03.tar.gz |
Move some tests from Karma to Jest
Diffstat (limited to 'spec/javascripts/vue_mr_widget')
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'); - }); -}); |