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); }); }); });