diff --git a/src/editor/history.js b/src/editor/history.js index 02f72bb5b4..7a4dbd8e66 100644 --- a/src/editor/history.js +++ b/src/editor/history.js @@ -14,6 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +export const MAX_STEP_LENGTH = 10; + export default class HistoryManager { constructor() { this._stack = []; @@ -30,9 +32,8 @@ export default class HistoryManager { return true; } if (diff.added) { - // only append after every 5th keystroke while typing this._newlyTypedCharCount += diff.added.length; - return this._newlyTypedCharCount > 5; + return this._newlyTypedCharCount > MAX_STEP_LENGTH; } } else { return true; diff --git a/test/editor/history-test.js b/test/editor/history-test.js index 13a145201b..5101a39e6c 100644 --- a/test/editor/history-test.js +++ b/test/editor/history-test.js @@ -15,7 +15,7 @@ limitations under the License. */ import expect from 'expect'; -import HistoryManager from "../../src/editor/history"; +import HistoryManager, {MAX_STEP_LENGTH} from "../../src/editor/history"; describe('editor/history', function() { it('push, then undo', function() { @@ -77,8 +77,7 @@ describe('editor/history', function() { expect(undoState.caret).toEqual(firstCaret); expect(undoState.parts).toEqual(["hello"]); expect(history.canUndo()).toEqual(false); - expect(keystrokeCount).toBeGreaterThan(2); - expect(keystrokeCount).toBeLessThan(20); + expect(keystrokeCount).toEqual(MAX_STEP_LENGTH + 1); // +1 before we type before checking }); it('keystroke that didn\'t add a step can undo', function() { const history = new HistoryManager();