diff options
author | Alex Groleau <agroleau@gitlab.com> | 2019-08-27 12:41:39 -0400 |
---|---|---|
committer | Alex Groleau <agroleau@gitlab.com> | 2019-08-27 12:41:39 -0400 |
commit | aa01f092829facd1044ad02f334422b7dbdc8b0e (patch) | |
tree | a754bf2497820432df7da0f2108bb7527a8dd7b8 /spec/javascripts/diffs/components | |
parent | a1d9c9994a9a4d79b824c3fd9322688303ac8b03 (diff) | |
parent | 6b10779053ff4233c7a64c5ab57754fce63f6710 (diff) | |
download | gitlab-ce-runner-metrics-extractor.tar.gz |
Merge branch 'master' of gitlab_gitlab:gitlab-org/gitlab-cerunner-metrics-extractor
Diffstat (limited to 'spec/javascripts/diffs/components')
12 files changed, 160 insertions, 31 deletions
diff --git a/spec/javascripts/diffs/components/compare_versions_spec.js b/spec/javascripts/diffs/components/compare_versions_spec.js index 77f8352047c..ef4bb470734 100644 --- a/spec/javascripts/diffs/components/compare_versions_spec.js +++ b/spec/javascripts/diffs/components/compare_versions_spec.js @@ -1,6 +1,6 @@ import Vue from 'vue'; import CompareVersionsComponent from '~/diffs/components/compare_versions.vue'; -import store from '~/mr_notes/stores'; +import { createStore } from '~/mr_notes/stores'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffsMockData from '../mock_data/merge_request_diffs'; import getDiffWithCommit from '../mock_data/diff_with_commit'; @@ -10,6 +10,8 @@ describe('CompareVersions', () => { const targetBranch = { branchName: 'tmp-wine-dev', versionIndex: -1 }; beforeEach(() => { + const store = createStore(); + store.state.diffs.addedLines = 10; store.state.diffs.removedLines = 20; store.state.diffs.diffFiles.push('test'); diff --git a/spec/javascripts/diffs/components/diff_expansion_cell_spec.js b/spec/javascripts/diffs/components/diff_expansion_cell_spec.js new file mode 100644 index 00000000000..63c50c09fce --- /dev/null +++ b/spec/javascripts/diffs/components/diff_expansion_cell_spec.js @@ -0,0 +1,64 @@ +import Vue from 'vue'; +import { createStore } from '~/mr_notes/stores'; +import DiffExpansionCell from '~/diffs/components/diff_expansion_cell.vue'; +import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; +import diffFileMockData from '../mock_data/diff_file'; + +const EXPAND_UP_CLASS = '.js-unfold'; +const EXPAND_DOWN_CLASS = '.js-unfold-down'; +const EXPAND_ALL_CLASS = '.js-unfold-all'; + +describe('DiffExpansionCell', () => { + const matchLine = diffFileMockData.highlighted_diff_lines[5]; + + const createComponent = (options = {}) => { + const cmp = Vue.extend(DiffExpansionCell); + const defaults = { + fileHash: diffFileMockData.file_hash, + contextLinesPath: 'contextLinesPath', + line: matchLine, + isTop: false, + isBottom: false, + }; + const props = Object.assign({}, defaults, options); + + return createComponentWithStore(cmp, createStore(), props).$mount(); + }; + + describe('top row', () => { + it('should have "expand up" and "show all" option', () => { + const vm = createComponent({ + isTop: true, + }); + const el = vm.$el; + + expect(el.querySelector(EXPAND_UP_CLASS)).not.toBe(null); + expect(el.querySelector(EXPAND_DOWN_CLASS)).toBe(null); + expect(el.querySelector(EXPAND_ALL_CLASS)).not.toBe(null); + }); + }); + + describe('middle row', () => { + it('should have "expand down", "show all", "expand up" option', () => { + const vm = createComponent(); + const el = vm.$el; + + expect(el.querySelector(EXPAND_UP_CLASS)).not.toBe(null); + expect(el.querySelector(EXPAND_DOWN_CLASS)).not.toBe(null); + expect(el.querySelector(EXPAND_ALL_CLASS)).not.toBe(null); + }); + }); + + describe('bottom row', () => { + it('should have "expand down" and "show all" option', () => { + const vm = createComponent({ + isBottom: true, + }); + const el = vm.$el; + + expect(el.querySelector(EXPAND_UP_CLASS)).toBe(null); + expect(el.querySelector(EXPAND_DOWN_CLASS)).not.toBe(null); + expect(el.querySelector(EXPAND_ALL_CLASS)).not.toBe(null); + }); + }); +}); diff --git a/spec/javascripts/diffs/components/diff_file_header_spec.js b/spec/javascripts/diffs/components/diff_file_header_spec.js index d4280d3ec2c..356e7a8f1fe 100644 --- a/spec/javascripts/diffs/components/diff_file_header_spec.js +++ b/spec/javascripts/diffs/components/diff_file_header_spec.js @@ -372,7 +372,7 @@ describe('diff_file_header', () => { }); it('displays old and new path if the file was renamed', () => { - props.diffFile.viewer.name = diffViewerModes.renamed; + props.diffFile.renamed_file = true; vm = mountComponentWithStore(Component, { props, store }); diff --git a/spec/javascripts/diffs/components/diff_file_spec.js b/spec/javascripts/diffs/components/diff_file_spec.js index ef4589ada48..3ca2d1dc934 100644 --- a/spec/javascripts/diffs/components/diff_file_spec.js +++ b/spec/javascripts/diffs/components/diff_file_spec.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import DiffFileComponent from '~/diffs/components/diff_file.vue'; import { diffViewerModes, diffViewerErrors } from '~/ide/constants'; -import store from 'ee_else_ce/mr_notes/stores'; +import { createStore } from 'ee_else_ce/mr_notes/stores'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffFileMockData from '../mock_data/diff_file'; @@ -9,14 +9,18 @@ describe('DiffFile', () => { let vm; beforeEach(() => { - vm = createComponentWithStore(Vue.extend(DiffFileComponent), store, { + vm = createComponentWithStore(Vue.extend(DiffFileComponent), createStore(), { file: JSON.parse(JSON.stringify(diffFileMockData)), canCurrentUserFork: false, }).$mount(); }); + afterEach(() => { + vm.$destroy(); + }); + describe('template', () => { - it('should render component with file header, file content components', () => { + it('should render component with file header, file content components', done => { const el = vm.$el; const { file_hash, file_path } = vm.file; @@ -30,9 +34,13 @@ describe('DiffFile', () => { vm.file.renderIt = true; - vm.$nextTick(() => { - expect(el.querySelectorAll('.line_content').length).toBeGreaterThan(5); - }); + vm.$nextTick() + .then(() => { + expect(el.querySelectorAll('.line_content').length).toBe(5); + expect(el.querySelectorAll('.js-line-expansion-content').length).toBe(1); + }) + .then(done) + .catch(done.fail); }); describe('collapsed', () => { diff --git a/spec/javascripts/diffs/components/diff_line_gutter_content_spec.js b/spec/javascripts/diffs/components/diff_line_gutter_content_spec.js index 038db8eaa7c..6bb704658fb 100644 --- a/spec/javascripts/diffs/components/diff_line_gutter_content_spec.js +++ b/spec/javascripts/diffs/components/diff_line_gutter_content_spec.js @@ -1,6 +1,6 @@ import Vue from 'vue'; import DiffLineGutterContent from '~/diffs/components/diff_line_gutter_content.vue'; -import store from '~/mr_notes/stores'; +import { createStore } from '~/mr_notes/stores'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import discussionsMockData from '../mock_data/diff_discussions'; import diffFileMockData from '../mock_data/diff_file'; @@ -23,7 +23,7 @@ describe('DiffLineGutterContent', () => { props.fileHash = getDiffFileMock().file_hash; props.contextLinesPath = '/context/lines/path'; - return createComponentWithStore(cmp, store, props).$mount(); + return createComponentWithStore(cmp, createStore(), props).$mount(); }; describe('computed', () => { @@ -61,7 +61,7 @@ describe('DiffLineGutterContent', () => { contextLinesPath: '/context/lines/path', }; props.line.discussions = [Object.assign({}, discussionsMockData)]; - const component = createComponentWithStore(cmp, store, props).$mount(); + const component = createComponentWithStore(cmp, createStore(), props).$mount(); expect(component.hasDiscussions).toEqual(true); expect(component.shouldShowAvatarsOnGutter).toEqual(true); @@ -70,15 +70,6 @@ describe('DiffLineGutterContent', () => { }); describe('template', () => { - it('should render three dots for context lines', () => { - const component = createComponent({ - isMatchLine: true, - }); - - expect(component.$el.querySelector('span').classList.contains('context-cell')).toEqual(true); - expect(component.$el.innerText).toEqual('...'); - }); - it('should render comment button', () => { const component = createComponent({ showCommentButton: true, diff --git a/spec/javascripts/diffs/components/diff_line_note_form_spec.js b/spec/javascripts/diffs/components/diff_line_note_form_spec.js index b983dc35a57..237cfccfa29 100644 --- a/spec/javascripts/diffs/components/diff_line_note_form_spec.js +++ b/spec/javascripts/diffs/components/diff_line_note_form_spec.js @@ -1,6 +1,6 @@ import Vue from 'vue'; import DiffLineNoteForm from '~/diffs/components/diff_line_note_form.vue'; -import store from '~/mr_notes/stores'; +import { createStore } from '~/mr_notes/stores'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffFileMockData from '../mock_data/diff_file'; import { noteableDataMock } from '../../notes/mock_data'; @@ -15,7 +15,7 @@ describe('DiffLineNoteForm', () => { diffFile = getDiffFileMock(); diffLines = diffFile.highlighted_diff_lines; - component = createComponentWithStore(Vue.extend(DiffLineNoteForm), store, { + component = createComponentWithStore(Vue.extend(DiffLineNoteForm), createStore(), { diffFileHash: diffFile.file_hash, diffLines, line: diffLines[0], diff --git a/spec/javascripts/diffs/components/diff_table_cell_spec.js b/spec/javascripts/diffs/components/diff_table_cell_spec.js index 170e661beea..a5a042c577c 100644 --- a/spec/javascripts/diffs/components/diff_table_cell_spec.js +++ b/spec/javascripts/diffs/components/diff_table_cell_spec.js @@ -1,12 +1,12 @@ import Vue from 'vue'; -import store from '~/mr_notes/stores'; +import { createStore } from '~/mr_notes/stores'; import DiffTableCell from '~/diffs/components/diff_table_cell.vue'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffFileMockData from '../mock_data/diff_file'; describe('DiffTableCell', () => { const createComponent = options => - createComponentWithStore(Vue.extend(DiffTableCell), store, { + createComponentWithStore(Vue.extend(DiffTableCell), createStore(), { line: diffFileMockData.highlighted_diff_lines[0], fileHash: diffFileMockData.file_hash, contextLinesPath: 'contextLinesPath', diff --git a/spec/javascripts/diffs/components/inline_diff_expansion_row_spec.js b/spec/javascripts/diffs/components/inline_diff_expansion_row_spec.js new file mode 100644 index 00000000000..290b3d7c803 --- /dev/null +++ b/spec/javascripts/diffs/components/inline_diff_expansion_row_spec.js @@ -0,0 +1,31 @@ +import Vue from 'vue'; +import { createStore } from '~/mr_notes/stores'; +import InlineDiffExpansionRow from '~/diffs/components/inline_diff_expansion_row.vue'; +import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; +import diffFileMockData from '../mock_data/diff_file'; + +describe('InlineDiffExpansionRow', () => { + const matchLine = diffFileMockData.highlighted_diff_lines[5]; + + const createComponent = (options = {}) => { + const cmp = Vue.extend(InlineDiffExpansionRow); + const defaults = { + fileHash: diffFileMockData.file_hash, + contextLinesPath: 'contextLinesPath', + line: matchLine, + isTop: false, + isBottom: false, + }; + const props = Object.assign({}, defaults, options); + + return createComponentWithStore(cmp, createStore(), props).$mount(); + }; + + describe('template', () => { + it('should render expansion row for match lines', () => { + const vm = createComponent(); + + expect(vm.$el.classList.contains('line_expansion')).toBe(true); + }); + }); +}); diff --git a/spec/javascripts/diffs/components/inline_diff_table_row_spec.js b/spec/javascripts/diffs/components/inline_diff_table_row_spec.js index 97926f6625e..0ddffe926d9 100644 --- a/spec/javascripts/diffs/components/inline_diff_table_row_spec.js +++ b/spec/javascripts/diffs/components/inline_diff_table_row_spec.js @@ -1,5 +1,5 @@ import Vue from 'vue'; -import store from '~/mr_notes/stores'; +import { createStore } from '~/mr_notes/stores'; import InlineDiffTableRow from '~/diffs/components/inline_diff_table_row.vue'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffFileMockData from '../mock_data/diff_file'; @@ -9,7 +9,7 @@ describe('InlineDiffTableRow', () => { const thisLine = diffFileMockData.highlighted_diff_lines[0]; beforeEach(() => { - vm = createComponentWithStore(Vue.extend(InlineDiffTableRow), store, { + vm = createComponentWithStore(Vue.extend(InlineDiffTableRow), createStore(), { line: thisLine, fileHash: diffFileMockData.file_hash, contextLinesPath: 'contextLinesPath', diff --git a/spec/javascripts/diffs/components/inline_diff_view_spec.js b/spec/javascripts/diffs/components/inline_diff_view_spec.js index 9b61dbe7975..486d9629e26 100644 --- a/spec/javascripts/diffs/components/inline_diff_view_spec.js +++ b/spec/javascripts/diffs/components/inline_diff_view_spec.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import '~/behaviors/markdown/render_gfm'; import InlineDiffView from '~/diffs/components/inline_diff_view.vue'; -import store from 'ee_else_ce/mr_notes/stores'; +import { createStore } from 'ee_else_ce/mr_notes/stores'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffFileMockData from '../mock_data/diff_file'; import discussionsMockData from '../mock_data/diff_discussions'; @@ -15,6 +15,8 @@ describe('InlineDiffView', () => { beforeEach(done => { const diffFile = getDiffFileMock(); + const store = createStore(); + store.dispatch('diffs/setInlineDiffViewType'); component = createComponentWithStore(Vue.extend(InlineDiffView), store, { diffFile, @@ -28,9 +30,9 @@ describe('InlineDiffView', () => { it('should have rendered diff lines', () => { const el = component.$el; - expect(el.querySelectorAll('tr.line_holder').length).toEqual(6); + expect(el.querySelectorAll('tr.line_holder').length).toEqual(5); expect(el.querySelectorAll('tr.line_holder.new').length).toEqual(2); - expect(el.querySelectorAll('tr.line_holder.match').length).toEqual(1); + expect(el.querySelectorAll('tr.line_expansion.match').length).toEqual(1); expect(el.textContent.indexOf('Bad dates')).toBeGreaterThan(-1); }); diff --git a/spec/javascripts/diffs/components/parallel_diff_expansion_row_spec.js b/spec/javascripts/diffs/components/parallel_diff_expansion_row_spec.js new file mode 100644 index 00000000000..a766ebb5efb --- /dev/null +++ b/spec/javascripts/diffs/components/parallel_diff_expansion_row_spec.js @@ -0,0 +1,31 @@ +import Vue from 'vue'; +import { createStore } from '~/mr_notes/stores'; +import ParallelDiffExpansionRow from '~/diffs/components/parallel_diff_expansion_row.vue'; +import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; +import diffFileMockData from '../mock_data/diff_file'; + +describe('ParallelDiffExpansionRow', () => { + const matchLine = diffFileMockData.highlighted_diff_lines[5]; + + const createComponent = (options = {}) => { + const cmp = Vue.extend(ParallelDiffExpansionRow); + const defaults = { + fileHash: diffFileMockData.file_hash, + contextLinesPath: 'contextLinesPath', + line: matchLine, + isTop: false, + isBottom: false, + }; + const props = Object.assign({}, defaults, options); + + return createComponentWithStore(cmp, createStore(), props).$mount(); + }; + + describe('template', () => { + it('should render expansion row for match lines', () => { + const vm = createComponent(); + + expect(vm.$el.classList.contains('line_expansion')).toBe(true); + }); + }); +}); diff --git a/spec/javascripts/diffs/components/parallel_diff_view_spec.js b/spec/javascripts/diffs/components/parallel_diff_view_spec.js index 236bda96145..191313bf487 100644 --- a/spec/javascripts/diffs/components/parallel_diff_view_spec.js +++ b/spec/javascripts/diffs/components/parallel_diff_view_spec.js @@ -1,6 +1,6 @@ import Vue from 'vue'; import ParallelDiffView from '~/diffs/components/parallel_diff_view.vue'; -import store from 'ee_else_ce/mr_notes/stores'; +import { createStore } from 'ee_else_ce/mr_notes/stores'; import * as constants from '~/diffs/constants'; import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; import diffFileMockData from '../mock_data/diff_file'; @@ -12,7 +12,7 @@ describe('ParallelDiffView', () => { beforeEach(() => { const diffFile = getDiffFileMock(); - component = createComponentWithStore(Vue.extend(ParallelDiffView), store, { + component = createComponentWithStore(Vue.extend(ParallelDiffView), createStore(), { diffFile, diffLines: diffFile.parallel_diff_lines, }).$mount(); |