const path = require('path') const fs = require('fs-plus') const temp = require('temp') describe('git-diff:toggle-diff-list', () => { let diffListView, editor beforeEach(() => { const projectPath = temp.mkdirSync('git-diff-spec-') fs.copySync(path.join(__dirname, 'fixtures', 'working-dir'), projectPath) fs.moveSync(path.join(projectPath, 'git.git'), path.join(projectPath, '.git')) atom.project.setPaths([projectPath]) jasmine.attachToDOM(atom.workspace.getElement()) waitsForPromise(() => atom.packages.activatePackage('git-diff')) waitsForPromise(() => atom.workspace.open('sample.js')) runs(() => { editor = atom.workspace.getActiveTextEditor() editor.setCursorBufferPosition([4, 29]) editor.insertText('a') atom.commands.dispatch(editor.getElement(), 'git-diff:toggle-diff-list') }) waitsFor(() => { diffListView = document.querySelector('.diff-list-view') return diffListView && diffListView.querySelectorAll('li').length > 0 }) }) it('shows a list of all diff hunks', () => { diffListView = document.querySelector('.diff-list-view ol') expect(diffListView.textContent).toBe('while(items.length > 0) {a-5,1 +5,1') }) it('moves the cursor to the selected hunk', () => { editor.setCursorBufferPosition([0, 0]) atom.commands.dispatch(document.querySelector('.diff-list-view'), 'core:confirm') expect(editor.getCursorBufferPosition()).toEqual([4, 4]) }) })