diff options
Diffstat (limited to 'spec/frontend/diffs/components/app_spec.js')
-rw-r--r-- | spec/frontend/diffs/components/app_spec.js | 79 |
1 files changed, 46 insertions, 33 deletions
diff --git a/spec/frontend/diffs/components/app_spec.js b/spec/frontend/diffs/components/app_spec.js index 513e67ea247..06995706a2b 100644 --- a/spec/frontend/diffs/components/app_spec.js +++ b/spec/frontend/diffs/components/app_spec.js @@ -59,6 +59,7 @@ describe('diffs/components/app', () => { endpoint: TEST_ENDPOINT, endpointMetadata: `${TEST_HOST}/diff/endpointMetadata`, endpointBatch: `${TEST_HOST}/diff/endpointBatch`, + endpointDiffForPath: TEST_ENDPOINT, endpointCoverage: `${TEST_HOST}/diff/endpointCoverage`, endpointCodequality: '', projectPath: 'namespace/project', @@ -71,12 +72,6 @@ describe('diffs/components/app', () => { }, provide, store, - stubs: { - DynamicScroller: { - template: `<div><slot :item="$store.state.diffs.diffFiles[0]"></slot></div>`, - }, - DynamicScrollerItem: true, - }, }); } @@ -265,7 +260,7 @@ describe('diffs/components/app', () => { it('sets width of tree list', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles = [{ file_hash: '111', file_path: '111.js' }]; + state.diffs.treeEntries = { 111: { type: 'blob', fileHash: '111', path: '111.js' } }; }); expect(wrapper.find('.js-diff-tree-list').element.style.width).toEqual('320px'); @@ -294,13 +289,14 @@ describe('diffs/components/app', () => { it('does not render empty state when diff files exist', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles.push({ - id: 1, - }); + state.diffs.diffFiles = ['anything']; + state.diffs.treeEntries['1'] = { type: 'blob', id: 1 }; }); expect(wrapper.findComponent(NoChanges).exists()).toBe(false); - expect(wrapper.findAllComponents(DiffFile).length).toBe(1); + expect(wrapper.findComponent({ name: 'DynamicScroller' }).props('items')).toBe( + store.state.diffs.diffFiles, + ); }); }); @@ -388,19 +384,15 @@ describe('diffs/components/app', () => { beforeEach(() => { createComponent({}, () => { - store.state.diffs.diffFiles = [ - { file_hash: '111', file_path: '111.js' }, - { file_hash: '222', file_path: '222.js' }, - { file_hash: '333', file_path: '333.js' }, + store.state.diffs.treeEntries = [ + { type: 'blob', fileHash: '111', path: '111.js' }, + { type: 'blob', fileHash: '222', path: '222.js' }, + { type: 'blob', fileHash: '333', path: '333.js' }, ]; }); spy = jest.spyOn(store, 'dispatch'); }); - afterEach(() => { - wrapper.destroy(); - }); - it('jumps to next and previous files in the list', async () => { await nextTick(); @@ -507,7 +499,6 @@ describe('diffs/components/app', () => { describe('diffs', () => { it('should render compare versions component', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles = [{ file_hash: '111', file_path: '111.js' }]; state.diffs.mergeRequestDiffs = diffsMockData; state.diffs.targetBranchName = 'target-branch'; state.diffs.mergeRequestDiff = mergeRequestDiff; @@ -578,10 +569,18 @@ describe('diffs/components/app', () => { it('should display diff file if there are diff files', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles.push({ sha: '123' }); + state.diffs.diffFiles = [{ file_hash: '111', file_path: '111.js' }]; + state.diffs.treeEntries = { + 111: { type: 'blob', fileHash: '111', path: '111.js' }, + 123: { type: 'blob', fileHash: '123', path: '123.js' }, + 312: { type: 'blob', fileHash: '312', path: '312.js' }, + }; }); - expect(wrapper.findComponent(DiffFile).exists()).toBe(true); + expect(wrapper.findComponent({ name: 'DynamicScroller' }).exists()).toBe(true); + expect(wrapper.findComponent({ name: 'DynamicScroller' }).props('items')).toBe( + store.state.diffs.diffFiles, + ); }); it("doesn't render tree list when no changes exist", () => { @@ -592,7 +591,7 @@ describe('diffs/components/app', () => { it('should render tree list', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles = [{ file_hash: '111', file_path: '111.js' }]; + state.diffs.treeEntries = { 111: { type: 'blob', fileHash: '111', path: '111.js' } }; }); expect(wrapper.findComponent(TreeList).exists()).toBe(true); @@ -606,7 +605,7 @@ describe('diffs/components/app', () => { it('calls setShowTreeList when only 1 file', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles.push({ sha: '123' }); + state.diffs.treeEntries = { 123: { type: 'blob', fileHash: '123' } }; }); jest.spyOn(store, 'dispatch'); wrapper.vm.setTreeDisplay(); @@ -617,10 +616,12 @@ describe('diffs/components/app', () => { }); }); - it('calls setShowTreeList with true when more than 1 file is in diffs array', () => { + it('calls setShowTreeList with true when more than 1 file is in tree entries map', () => { createComponent({}, ({ state }) => { - state.diffs.diffFiles.push({ sha: '123' }); - state.diffs.diffFiles.push({ sha: '124' }); + state.diffs.treeEntries = { + 111: { type: 'blob', fileHash: '111', path: '111.js' }, + 123: { type: 'blob', fileHash: '123', path: '123.js' }, + }; }); jest.spyOn(store, 'dispatch'); @@ -640,7 +641,7 @@ describe('diffs/components/app', () => { localStorage.setItem('mr_tree_show', showTreeList); createComponent({}, ({ state }) => { - state.diffs.diffFiles.push({ sha: '123' }); + state.diffs.treeEntries['123'] = { sha: '123' }; }); jest.spyOn(store, 'dispatch'); @@ -656,7 +657,10 @@ describe('diffs/components/app', () => { describe('file-by-file', () => { it('renders a single diff', async () => { createComponent({ fileByFileUserPreference: true }, ({ state }) => { - state.diffs.diffFiles.push({ file_hash: '123' }); + state.diffs.treeEntries = { + 123: { type: 'blob', fileHash: '123' }, + 312: { type: 'blob', fileHash: '312' }, + }; state.diffs.diffFiles.push({ file_hash: '312' }); }); @@ -671,7 +675,10 @@ describe('diffs/components/app', () => { it('sets previous button as disabled', async () => { createComponent({ fileByFileUserPreference: true }, ({ state }) => { - state.diffs.diffFiles.push({ file_hash: '123' }, { file_hash: '312' }); + state.diffs.treeEntries = { + 123: { type: 'blob', fileHash: '123' }, + 312: { type: 'blob', fileHash: '312' }, + }; }); await nextTick(); @@ -682,7 +689,10 @@ describe('diffs/components/app', () => { it('sets next button as disabled', async () => { createComponent({ fileByFileUserPreference: true }, ({ state }) => { - state.diffs.diffFiles.push({ file_hash: '123' }, { file_hash: '312' }); + state.diffs.treeEntries = { + 123: { type: 'blob', fileHash: '123' }, + 312: { type: 'blob', fileHash: '312' }, + }; state.diffs.currentDiffFileId = '312'; }); @@ -694,7 +704,7 @@ describe('diffs/components/app', () => { it("doesn't display when there's fewer than 2 files", async () => { createComponent({ fileByFileUserPreference: true }, ({ state }) => { - state.diffs.diffFiles.push({ file_hash: '123' }); + state.diffs.treeEntries = { 123: { type: 'blob', fileHash: '123' } }; state.diffs.currentDiffFileId = '123'; }); @@ -711,7 +721,10 @@ describe('diffs/components/app', () => { 'calls navigateToDiffFileIndex with $index when $link is clicked', async ({ currentDiffFileId, targetFile }) => { createComponent({ fileByFileUserPreference: true }, ({ state }) => { - state.diffs.diffFiles.push({ file_hash: '123' }, { file_hash: '312' }); + state.diffs.treeEntries = { + 123: { type: 'blob', fileHash: '123' }, + 312: { type: 'blob', fileHash: '312' }, + }; state.diffs.currentDiffFileId = currentDiffFileId; }); |