Skip to content

Commit 9eb72c4

Browse files
committed
stop chopping trailing retain
1 parent 1bc89cf commit 9eb72c4

File tree

5 files changed

+13
-48
lines changed

5 files changed

+13
-48
lines changed

lib/delta.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,6 @@ Delta.prototype.reduce = function (predicate, initial) {
107107
return this.ops.reduce(predicate, initial);
108108
};
109109

110-
Delta.prototype.chop = function () {
111-
var lastOp = this.ops[this.ops.length - 1];
112-
if (lastOp && lastOp.retain && !lastOp.attributes) {
113-
this.ops.pop();
114-
}
115-
return this;
116-
};
117-
118110
Delta.prototype.length = function () {
119111
return this.reduce(function (length, elem) {
120112
return length + op.length(elem);
@@ -172,7 +164,7 @@ Delta.prototype.compose = function (other) {
172164
}
173165
}
174166
}
175-
return delta.chop();
167+
return delta;
176168
};
177169

178170
Delta.prototype.concat = function (other) {
@@ -229,7 +221,7 @@ Delta.prototype.diff = function (other, index) {
229221
length -= opLength;
230222
}
231223
});
232-
return delta.chop();
224+
return delta;
233225
};
234226

235227
Delta.prototype.eachLine = function (predicate, newline) {
@@ -288,7 +280,7 @@ Delta.prototype.transform = function (other, priority) {
288280
}
289281
}
290282
}
291-
return delta.chop();
283+
return delta;
292284
};
293285

294286
Delta.prototype.transformPosition = function (index, priority) {

test/delta/compose.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,6 @@ describe('compose()', function () {
9696
expect(a.compose(b)).toEqual(expected);
9797
});
9898

99-
it('retain more than length of text', function () {
100-
var a = new Delta().insert('Hello');
101-
var b = new Delta().retain(10);
102-
var expected = new Delta().insert('Hello');
103-
expect(a.compose(b)).toEqual(expected);
104-
});
105-
10699
it('retain empty embed', function () {
107100
var a = new Delta().insert(1);
108101
var b = new Delta().retain(1);

test/delta/diff.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('diff()', function () {
1919
it('retain', function () {
2020
var a = new Delta().insert('A');
2121
var b = new Delta().insert('A');
22-
var expected = new Delta();
22+
var expected = new Delta().retain(1);
2323
expect(a.diff(b)).toEqual(expected);
2424
});
2525

@@ -33,14 +33,14 @@ describe('diff()', function () {
3333
it('object attributes', function () {
3434
var a = new Delta().insert('A', { font: { family: 'Helvetica', size: '15px' } });
3535
var b = new Delta().insert('A', { font: { family: 'Helvetica', size: '15px' } });
36-
var expected = new Delta();
36+
var expected = new Delta().retain(1);
3737
expect(a.diff(b)).toEqual(expected);
3838
});
3939

4040
it('embed integer match', function () {
4141
var a = new Delta().insert(1);
4242
var b = new Delta().insert(1);
43-
var expected = new Delta();
43+
var expected = new Delta().retain(1);
4444
expect(a.diff(b)).toEqual(expected);
4545
});
4646

@@ -54,7 +54,7 @@ describe('diff()', function () {
5454
it('embed object match', function () {
5555
var a = new Delta().insert({ image: 'http://quilljs.com' });
5656
var b = new Delta().insert({ image: 'http://quilljs.com' });
57-
var expected = new Delta();
57+
var expected = new Delta().retain(1);
5858
expect(a.diff(b)).toEqual(expected);
5959
});
6060

test/delta/helpers.js

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,6 @@ describe('helpers', function () {
2929
});
3030
});
3131

32-
describe('chop()', function () {
33-
it('retain', function () {
34-
var delta = new Delta().insert('Test').retain(4);
35-
var expected = new Delta().insert('Test');
36-
expect(delta.chop()).toEqual(expected);
37-
});
38-
39-
it('insert', function () {
40-
var delta = new Delta().insert('Test');
41-
var expected = new Delta().insert('Test');
42-
expect(delta.chop()).toEqual(expected);
43-
});
44-
45-
it('formatted retain', function () {
46-
var delta = new Delta().insert('Test').retain(4, { bold: true });
47-
var expected = new Delta().insert('Test').retain(4, { bold: true });
48-
expect(delta.chop()).toEqual(expected);
49-
})
50-
});
51-
5232
describe('eachLine()', function () {
5333
var spy = { predicate: function () {} };
5434

test/delta/transform.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe('transform()', function () {
88
var a2 = new Delta(a1);
99
var b2 = new Delta(b1);
1010
var expected1 = new Delta().retain(1).insert('B');
11-
var expected2 = new Delta().insert('B');
11+
var expected2 = new Delta().insert('B').retain(1);
1212
expect(a1.transform(b1, true)).toEqual(expected1);
1313
expect(a2.transform(b2, false)).toEqual(expected2);
1414
});
@@ -51,7 +51,7 @@ describe('transform()', function () {
5151
it('retain + insert', function () {
5252
var a = new Delta().retain(1, { color: 'blue' });
5353
var b = new Delta().insert('B');
54-
var expected = new Delta().insert('B');
54+
var expected = new Delta().insert('B').retain(1);
5555
expect(a.transform(b, true)).toEqual(expected);
5656
});
5757

@@ -61,7 +61,7 @@ describe('transform()', function () {
6161
var a2 = new Delta().retain(1, { color: 'blue' });
6262
var b2 = new Delta().retain(1, { bold: true, color: 'red' });
6363
var expected1 = new Delta().retain(1, { bold: true });
64-
var expected2 = new Delta();
64+
var expected2 = new Delta().retain(1);
6565
expect(a1.transform(b1, true)).toEqual(expected1);
6666
expect(b2.transform(a2, true)).toEqual(expected2);
6767
});
@@ -90,7 +90,7 @@ describe('transform()', function () {
9090
var a2 = new Delta(a1);
9191
var b2 = new Delta(b1);
9292
var expected1 = new Delta().retain(1).insert('e').delete(1).retain(2).insert('ow');
93-
var expected2 = new Delta().retain(2).insert('si').delete(1);
93+
var expected2 = new Delta().retain(2).insert('si').delete(1).retain(2);
9494
expect(a1.transform(b1, false)).toEqual(expected1);
9595
expect(b2.transform(a2, false)).toEqual(expected2);
9696
});
@@ -101,7 +101,7 @@ describe('transform()', function () {
101101
var a2 = new Delta(a1);
102102
var b2 = new Delta(b1);
103103
var expected1 = new Delta().retain(5).insert('bb');
104-
var expected2 = new Delta().retain(3).insert('aa');
104+
var expected2 = new Delta().retain(3).insert('aa').retain(2);
105105
expect(a1.transform(b1, true)).toEqual(expected1);
106106
expect(b2.transform(a2, false)).toEqual(expected2);
107107
});
@@ -112,7 +112,7 @@ describe('transform()', function () {
112112
var expected1 = new Delta().retain(5).insert('bb');
113113
var a2 = new Delta(a1);
114114
var b2 = new Delta(b1);
115-
var expected2 = new Delta().insert('aa');
115+
var expected2 = new Delta().insert('aa').retain(5);
116116
expect(a1.transform(b1, false)).toEqual(expected1);
117117
expect(b2.transform(a2, false)).toEqual(expected2);
118118
});

0 commit comments

Comments
 (0)