Tests use hyperscript instead of manually constructing nodes

This commit is contained in:
Barney Carroll 2021-04-14 17:05:14 +01:00 committed by Stephan Hoyer
parent 5502570b16
commit 31d2ed4be8
27 changed files with 1515 additions and 1841 deletions

View file

@ -13,102 +13,84 @@ o.spec("updateText", function() {
})
o("updates to string", function() {
var vnode = {tag: "#", children: "a"}
var updated = {tag: "#", children: "b"}
var vnode = "a"
var updated = "b"
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("b")
o(root.firstChild.nodeValue).equals("b")
})
o("updates to falsy string", function() {
var vnode = {tag: "#", children: "a"}
var updated = {tag: "#", children: ""}
var vnode = "a"
var updated = ""
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("")
o(root.firstChild.nodeValue).equals("")
})
o("updates from falsy string", function() {
var vnode = {tag: "#", children: ""}
var updated = {tag: "#", children: "b"}
var vnode = ""
var updated = "b"
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("b")
o(root.firstChild.nodeValue).equals("b")
})
o("updates to number", function() {
var vnode = {tag: "#", children: "a"}
var updated = {tag: "#", children: 1}
var vnode = "a"
var updated = 1
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("1")
o(root.firstChild.nodeValue).equals("1")
})
o("updates to falsy number", function() {
var vnode = {tag: "#", children: "a"}
var updated = {tag: "#", children: 0}
var vnode = "a"
var updated = 0
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("0")
o(root.firstChild.nodeValue).equals("0")
})
o("updates from falsy number", function() {
var vnode = {tag: "#", children: 0}
var updated = {tag: "#", children: "b"}
var vnode = 0
var updated = "b"
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("b")
o(root.firstChild.nodeValue).equals("b")
})
o("updates to boolean", function() {
var vnode = {tag: "#", children: "a"}
var updated = {tag: "#", children: true}
var vnode = "a"
var updated = true
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("true")
o(root.childNodes.length).equals(0)
})
o("updates to falsy boolean", function() {
var vnode = {tag: "#", children: "a"}
var updated = {tag: "#", children: false}
var vnode = "a"
var updated = false
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("false")
o(root.childNodes.length).equals(0)
})
o("updates from falsy boolean", function() {
var vnode = {tag: "#", children: false}
var updated = {tag: "#", children: "b"}
var vnode = false
var updated = "b"
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(vnode.dom)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeValue).equals("b")
o(root.firstChild.nodeValue).equals("b")
})
})