alter-tests.js 1.24 KB
"use strict";

var test = require("tap").test;
var alter = require("../");

test("simple", function(t) {
    t.equal(alter("0123456789", [
        {start: 1, end: 3, str: "first"},
        {start: 5, end: 9, str: "second"},
    ]), "0first34second9");
    t.end();
});

test("not-sorted-order", function(t) {
    t.equal(alter("0123456789", [
        {start: 5, end: 9, str: "second"},
        {start: 1, end: 3, str: "first"},
    ]), "0first34second9");
    t.end();
});

test("insert", function(t) {
    t.equal(alter("0123456789", [
        {start: 5, end: 5, str: "xyz"},
    ]), "01234xyz56789");
    t.end();
});

test("delete", function(t) {
    t.equal(alter("0123456789", [
        {start: 5, end: 6, str: ""},
    ]), "012346789");
    t.end();
});

test("nop1", function(t) {
    t.equal(alter("0123456789", [
    ]), "0123456789");
    t.end();
});

test("nop2", function(t) {
    t.equal(alter("0123456789", [
        {start: 5, end: 5, str: ""},
    ]), "0123456789");
    t.end();
});

test("orderedinsert-stable", function(t) {
    t.equal(alter("0123456789", [
        {start: 5, end: 5, str: "a"},
        {start: 5, end: 5, str: "b"},
        {start: 5, end: 5, str: "c"},
        {start: 5, end: 6, str: "d"},
    ]), "01234abcd6789");
    t.end();
});