import * as utils from '~/merge_conflicts/utils'; describe('merge conflicts utils', () => { describe('getFilePath', () => { it('returns new path if they are the same', () => { expect(utils.getFilePath({ new_path: 'a', old_path: 'a' })).toBe('a'); }); it('returns concatenated paths if they are different', () => { expect(utils.getFilePath({ new_path: 'b', old_path: 'a' })).toBe('a → b'); }); }); describe('checkLineLengths', () => { it('add empty lines to the left when right has more lines', () => { const result = utils.checkLineLengths({ left: [1], right: [1, 2] }); expect(result.left).toHaveLength(result.right.length); expect(result.left).toStrictEqual([1, { lineType: 'emptyLine', richText: '' }]); }); it('add empty lines to the right when left has more lines', () => { const result = utils.checkLineLengths({ left: [1, 2], right: [1] }); expect(result.right).toHaveLength(result.left.length); expect(result.right).toStrictEqual([1, { lineType: 'emptyLine', richText: '' }]); }); }); describe('getHeadHeaderLine', () => { it('decorates the id', () => { expect(utils.getHeadHeaderLine(1)).toStrictEqual({ buttonTitle: 'Use ours', id: 1, isHead: true, isHeader: true, isSelected: false, isUnselected: false, richText: 'HEAD//our changes', section: 'head', type: 'new', }); }); }); describe('decorateLineForInlineView', () => { it.each` type | truthyProp ${'new'} | ${'isHead'} ${'old'} | ${'isOrigin'} ${'match'} | ${'hasMatch'} `( 'when the type is $type decorates the line with $truthyProp set as true', ({ type, truthyProp }) => { expect(utils.decorateLineForInlineView({ type, rich_text: 'rich' }, 1, true)).toStrictEqual( { id: 1, hasConflict: true, isHead: false, isOrigin: false, hasMatch: false, richText: 'rich', isSelected: false, isUnselected: false, [truthyProp]: true, }, ); }, ); }); describe('getLineForParallelView', () => { it.todo('should return a proper value'); }); describe('getOriginHeaderLine', () => { it('decorates the id', () => { expect(utils.getOriginHeaderLine(1)).toStrictEqual({ buttonTitle: 'Use theirs', id: 1, isHeader: true, isOrigin: true, isSelected: false, isUnselected: false, richText: 'origin//their changes', section: 'origin', type: 'old', }); }); }); describe('setInlineLine', () => { it.todo('should return a proper value'); }); describe('setParallelLine', () => { it.todo('should return a proper value'); }); describe('decorateFiles', () => { it.todo('should return a proper value'); }); describe('restoreFileLinesState', () => { it.todo('should return a proper value'); }); describe('markLine', () => { it.todo('should return a proper value'); }); });