diff --git a/modules/history.js b/modules/history.js index 5095244034..80f9d4bdcb 100644 --- a/modules/history.js +++ b/modules/history.js @@ -58,7 +58,7 @@ class History extends Module { undo: undoDelta }); if (this.stack.undo.length > this.options.maxStack) { - this.stack.undo.unshift(); + this.stack.undo.shift(); } } diff --git a/test/unit/modules/history.js b/test/unit/modules/history.js index f3809f35eb..d3e1a23dcd 100644 --- a/test/unit/modules/history.js +++ b/test/unit/modules/history.js @@ -67,6 +67,17 @@ describe('History', function() { this.original = this.quill.getContents(); }); + it('limits undo stack size', function () { + let quill = new Quill(this.container.firstChild, { + modules: { + history: {delay: 0, maxStack: 2} + } + }); + + ['A', 'B', 'C'].forEach(text => quill.insertText(0, text)); + expect(quill.history.stack.undo.length).toEqual(2); + }); + it('user change', function() { this.quill.root.firstChild.innerHTML = 'The lazy foxes'; this.quill.update();