add tests for removing multiple characters in edit

This commit is contained in:
Bruno Windels 2019-07-30 12:31:40 +02:00
parent b8a3c5ebd0
commit 4b08bf0e76

View file

@ -19,30 +19,54 @@ import {diffDeletion, diffAtCaret} from "../../src/editor/diff";
describe('editor/diff', function() { describe('editor/diff', function() {
describe('diffDeletion', function() { describe('diffDeletion', function() {
it('at start of string', function() { describe('with a single character removed', function() {
const diff = diffDeletion("hello", "ello"); it('at start of string', function() {
expect(diff.at).toBe(0); const diff = diffDeletion("hello", "ello");
expect(diff.removed).toBe("h"); expect(diff.at).toBe(0);
expect(diff.removed).toBe("h");
});
it('in middle of string', function() {
const diff = diffDeletion("hello", "hllo");
expect(diff.at).toBe(1);
expect(diff.removed).toBe("e");
});
it('in middle of string with duplicate character', function() {
const diff = diffDeletion("hello", "helo");
expect(diff.at).toBe(3);
expect(diff.removed).toBe("l");
});
it('at end of string', function() {
const diff = diffDeletion("hello", "hell");
expect(diff.at).toBe(4);
expect(diff.removed).toBe("o");
});
}); });
it('removing whole string', function() { describe('with a multiple removed', function() {
const diff = diffDeletion("hello", ""); it('at start of string', function() {
expect(diff.at).toBe(0); const diff = diffDeletion("hello", "llo");
expect(diff.removed).toBe("hello"); expect(diff.at).toBe(0);
}); expect(diff.removed).toBe("he");
it('in middle of string', function() { });
const diff = diffDeletion("hello", "hllo"); it('removing whole string', function() {
expect(diff.at).toBe(1); const diff = diffDeletion("hello", "");
expect(diff.removed).toBe("e"); expect(diff.at).toBe(0);
}); expect(diff.removed).toBe("hello");
it('in middle of string with duplicate character', function() { });
const diff = diffDeletion("hello", "helo"); it('in middle of string', function() {
expect(diff.at).toBe(3); const diff = diffDeletion("hello", "hlo");
expect(diff.removed).toBe("l"); expect(diff.at).toBe(1);
}); expect(diff.removed).toBe("el");
it('at end of string', function() { });
const diff = diffDeletion("hello", "hell"); it('in middle of string with duplicate character', function() {
expect(diff.at).toBe(4); const diff = diffDeletion("hello", "heo");
expect(diff.removed).toBe("o"); expect(diff.at).toBe(2);
expect(diff.removed).toBe("ll");
});
it('at end of string', function() {
const diff = diffDeletion("hello", "hel");
expect(diff.at).toBe(3);
expect(diff.removed).toBe("lo");
});
}); });
}); });
describe('diffAtCaret', function() { describe('diffAtCaret', function() {