82 lines
2.8 KiB
JavaScript
82 lines
2.8 KiB
JavaScript
var Delta = require('../../lib/delta');
|
|
var expect = require('chai').expect;
|
|
|
|
|
|
describe('helpers', function () {
|
|
describe('chop()', function () {
|
|
it('retain', function () {
|
|
var delta = new Delta().insert('Test').retain(4);
|
|
var expected = new Delta().insert('Test');
|
|
expect(delta.chop()).to.deep.equal(expected);
|
|
});
|
|
|
|
it('insert', function () {
|
|
var delta = new Delta().insert('Test');
|
|
var expected = new Delta().insert('Test');
|
|
expect(delta.chop()).to.deep.equal(expected);
|
|
});
|
|
|
|
it('formatted retain', function () {
|
|
var delta = new Delta().insert('Test').retain(4, { bold: true });
|
|
var expected = new Delta().insert('Test').retain(4, { bold: true });
|
|
expect(delta.chop()).to.deep.equal(expected);
|
|
})
|
|
});
|
|
|
|
describe('length()', function () {
|
|
it('document', function () {
|
|
var delta = new Delta().insert('AB', { bold: true }).insert(1);
|
|
expect(delta.length()).to.equal(3);
|
|
});
|
|
|
|
it('mixed', function () {
|
|
var delta = new Delta().insert('AB', { bold: true }).insert(1).retain(2, { bold: null }).delete(1);
|
|
expect(delta.length()).to.equal(6);
|
|
});
|
|
});
|
|
|
|
describe('slice()', function () {
|
|
it('start', function () {
|
|
var slice = new Delta().retain(2).insert('A').slice(2);
|
|
var expected = new Delta().insert('A');
|
|
expect(slice).to.deep.equal(expected);
|
|
});
|
|
|
|
it('start and end chop', function () {
|
|
var slice = new Delta().insert('0123456789').slice(2, 7);
|
|
var expected = new Delta().insert('23456');
|
|
expect(slice).to.deep.equal(expected);
|
|
});
|
|
|
|
it('start and end multiple chop', function () {
|
|
var slice = new Delta().insert('0123', { bold: true }).insert('4567').slice(3, 5);
|
|
var expected = new Delta().insert('3', { bold: true }).insert('4');
|
|
expect(slice).to.deep.equal(expected);
|
|
});
|
|
|
|
it('start and end', function () {
|
|
var slice = new Delta().retain(2).insert('A', { bold: true }).insert('B').slice(2, 3);
|
|
var expected = new Delta().insert('A', { bold: true });
|
|
expect(slice).to.deep.equal(expected);
|
|
});
|
|
|
|
it('no params', function () {
|
|
var delta = new Delta().retain(2).insert('A', { bold: true }).insert('B');
|
|
var slice = delta.slice();
|
|
expect(slice).to.deep.equal(delta);
|
|
});
|
|
|
|
it('split ops', function () {
|
|
var slice = new Delta().insert('AB', { bold: true }).insert('C').slice(1, 2);
|
|
var expected = new Delta().insert('B', { bold: true });
|
|
expect(slice).to.deep.equal(expected);
|
|
});
|
|
|
|
it('split ops multiple times', function () {
|
|
var slice = new Delta().insert('ABC', { bold: true }).insert('D').slice(1, 2);
|
|
var expected = new Delta().insert('B', { bold: true });
|
|
expect(slice).to.deep.equal(expected);
|
|
});
|
|
});
|
|
});
|