Files
atom/packages/git-diff/spec/diff-list-view-spec.js
2019-05-31 18:33:56 +02:00

52 lines
1.5 KiB
JavaScript

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([8, 30]);
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-9,1 +9,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([8, 4]);
});
});