From 67b11f156a4f25dbb7de94c2fd2179d69dd49f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Yves=20G=C3=A9rardy?= Date: Thu, 6 Jul 2017 19:48:24 +0200 Subject: [PATCH 1/2] Add a test to ensure that e.redraw is cleared if it was false --- api/tests/test-mount.js | 3 +-- api/tests/test-router.js | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/api/tests/test-mount.js b/api/tests/test-mount.js index db2bee04..53a35640 100644 --- a/api/tests/test-mount.js +++ b/api/tests/test-mount.js @@ -5,7 +5,6 @@ var components = require("../../test-utils/components") var domMock = require("../../test-utils/domMock") var m = require("../../render/hyperscript") -var coreRenderer = require("../../render/render") var apiRedraw = require("../../api/redraw") var apiMounter = require("../../api/mount") @@ -20,7 +19,7 @@ o.spec("mount", function() { redrawService = apiRedraw($window) mount = apiMounter(redrawService) - render = coreRenderer($window).render + render = redrawService.render }) o("throws on invalid component", function() { diff --git a/api/tests/test-router.js b/api/tests/test-router.js index 9406de70..0b078e67 100644 --- a/api/tests/test-router.js +++ b/api/tests/test-router.js @@ -224,9 +224,11 @@ o.spec("route", function() { } }) + o(oninit.callCount).equals(1) + root.firstChild.dispatchEvent(e) - o(oninit.callCount).equals(1) + o(e.redraw).notEquals(false) // Wrapped to ensure no redraw fired callAsync(function() { From 198f9ca7a9aaf40441d88171044ce72aea24d519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Yves=20G=C3=A9rardy?= Date: Thu, 6 Jul 2017 00:04:38 +0200 Subject: [PATCH 2/2] Reset e.redraw when it was set to `false`. fixes #1850 --- api/redraw.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/redraw.js b/api/redraw.js index 1b22271b..a05b6c88 100644 --- a/api/redraw.js +++ b/api/redraw.js @@ -26,7 +26,8 @@ function throttle(callback) { module.exports = function($window) { var renderService = coreRenderer($window) renderService.setEventCallback(function(e) { - if (e.redraw !== false) redraw() + if (e.redraw === false) e.redraw = undefined + else redraw() }) var callbacks = []