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

@ -3,6 +3,8 @@
var o = require("ospec")
var domMock = require("../../test-utils/domMock")
var vdom = require("../../render/render")
var m = require("../../render/hyperscript")
m.fragment = require("../../render/fragment")
o.spec("updateFragment", function() {
var $window, root, render
@ -13,21 +15,21 @@ o.spec("updateFragment", function() {
})
o("updates fragment", function() {
var vnode = {tag: "[", children: [{tag: "a"}]}
var updated = {tag: "[", children: [{tag: "b"}]}
var vnode = m.fragment(m("a"))
var updated = m.fragment(m("b"))
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeName).equals("B")
})
o("adds els", function() {
var vnode = {tag: "[", children: []}
var updated = {tag: "[", children: [{tag: "a"}, {tag: "b"}]}
var vnode = m.fragment()
var updated = m.fragment(m("a"), m("b"))
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(root.firstChild)
o(updated.domSize).equals(2)
@ -36,32 +38,32 @@ o.spec("updateFragment", function() {
o(root.childNodes[1].nodeName).equals("B")
})
o("removes els", function() {
var vnode = {tag: "[", children: [{tag: "a"}, {tag: "b"}]}
var updated = {tag: "[", children: []}
var vnode = m.fragment(m("a"), m("b"))
var updated = m.fragment()
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(null)
o(updated.domSize).equals(0)
o(root.childNodes.length).equals(0)
})
o("updates from childless fragment", function() {
var vnode = {tag: "["}
var updated = {tag: "[", children: [{tag: "a"}]}
var vnode = m.fragment()
var updated = m.fragment(m("a"))
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(root.firstChild)
o(updated.dom.nodeName).equals("A")
})
o("updates to childless fragment", function() {
var vnode = {tag: "[", children: [{tag: "a"}]}
var updated = {tag: "["}
var vnode = m.fragment(m("a"))
var updated = m.fragment()
render(root, [vnode])
render(root, [updated])
render(root, vnode)
render(root, updated)
o(updated.dom).equals(null)
o(root.childNodes.length).equals(0)