From b9244f4c21849c3252045aff53898fa33d16ae05 Mon Sep 17 00:00:00 2001 From: Leo Horie Date: Mon, 12 Sep 2016 09:45:57 -0400 Subject: [PATCH] fix class removal --- render/render.js | 1 + render/tests/test-updateElement.js | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/render/render.js b/render/render.js index b0091e41..4aa8c47f 100644 --- a/render/render.js +++ b/render/render.js @@ -431,6 +431,7 @@ module.exports = function($window) { if (old != null) { for (var key in old) { if (attrs == null || !(key in attrs)) { + if (key === "className") key = "class" if (key[0] === "o" && key[1] === "n" && !isLifecycleMethod(key)) updateEvent(vnode, key, undefined) else if (key !== "key") vnode.dom.removeAttribute(key) } diff --git a/render/tests/test-updateElement.js b/render/tests/test-updateElement.js index 375476f0..dfda41c5 100644 --- a/render/tests/test-updateElement.js +++ b/render/tests/test-updateElement.js @@ -56,6 +56,17 @@ o.spec("updateElement", function() { o(updated.dom).equals(root.firstChild) o("title" in updated.dom.attributes).equals(false) }) + o("removes class", function() { + var vnode = {tag: "a", attrs: {id: "b", className: "d"}} + var updated = {tag: "a", attrs: {id: "c"}} + + render(root, [vnode]) + render(root, [updated]) + + o(updated.dom).equals(vnode.dom) + o(updated.dom).equals(root.firstChild) + o("class" in updated.dom.attributes).equals(false) + }) o("creates style object", function() { var vnode = {tag: "a", attrs: {}} var updated = {tag: "a", attrs: {style: {backgroundColor: "green"}}}