Skip to content

Commit ca72c73

Browse files
kfuledead-claudia
authored andcommitted
add tests to check domSize
1 parent d36cac4 commit ca72c73

File tree

5 files changed

+249
-0
lines changed

5 files changed

+249
-0
lines changed

render/tests/test-component.js

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,242 @@ o.spec("component", function() {
870870
}
871871
})
872872
})
873+
o.spec("vnode.domSize (vnode.instance == null)", function() {
874+
o("create and update", function() {
875+
var component = createComponent({
876+
view: function() {return null}
877+
})
878+
// create
879+
var v1 = m(component)
880+
render(root, v1)
881+
o(v1.domSize).equals(0)
882+
o(v1.instance).equals(null)
883+
// update
884+
var v2 = m(component)
885+
render(root, v2)
886+
o(v2.domSize).equals(0)
887+
o(v2.instance).equals(null)
888+
})
889+
o("remove instance", function() {
890+
var v
891+
var component = createComponent({
892+
view: function() {return v}
893+
})
894+
// create (return element vnode)
895+
v = m("a")
896+
var v1 = m(component)
897+
render(root, v1)
898+
o(v1.instance.tag).equals("a")
899+
o(v1.domSize).equals(undefined)
900+
o(v1.instance.domSize).equals(undefined)
901+
// remove instance (return null)
902+
v = null
903+
var v2 = m(component)
904+
render(root, v2)
905+
o(v2.domSize).equals(0)
906+
o(v2.instance).equals(null)
907+
})
908+
o("nested component", function() {
909+
var childComponent = createComponent({
910+
view: function() {return null}
911+
})
912+
var parentComponent = createComponent({
913+
view: function() {return m(childComponent)}
914+
})
915+
// create
916+
var v1 = m(parentComponent)
917+
render(root, v1)
918+
o(v1.domSize).equals(0)
919+
o(v1.instance.domSize).equals(0)
920+
o(v1.instance.instance).equals(null)
921+
// update
922+
var v2 = m(parentComponent)
923+
render(root, v2)
924+
o(v2.domSize).equals(0)
925+
o(v2.instance.domSize).equals(0)
926+
o(v2.instance.instance).equals(null)
927+
})
928+
})
929+
o.spec("vnode.domSize equals vnode.instance.domSize (vnode.instance != null)", function() {
930+
o("text", function() {
931+
var component = createComponent({
932+
view: function() {return "text"}
933+
})
934+
// create
935+
var v1 = m(component)
936+
render(root, v1)
937+
o(v1.instance.tag).equals("#")
938+
o(v1.domSize).equals(undefined)
939+
o(v1.instance.domSize).equals(undefined)
940+
o(v1.dom).equals(v1.instance.dom)
941+
// update
942+
var v2 = m(component)
943+
render(root, v2)
944+
o(v2.instance.tag).equals("#")
945+
o(v2.domSize).equals(undefined)
946+
o(v2.instance.domSize).equals(undefined)
947+
o(v2.dom).equals(v2.instance.dom)
948+
})
949+
o("element", function() {
950+
var component = createComponent({
951+
view: function() {return m("a")}
952+
})
953+
// create
954+
var v1 = m(component)
955+
render(root, v1)
956+
o(v1.instance.tag).equals("a")
957+
o(v1.domSize).equals(undefined)
958+
o(v1.instance.domSize).equals(undefined)
959+
o(v1.dom).equals(v1.instance.dom)
960+
// update
961+
var v2 = m(component)
962+
render(root, v2)
963+
o(v2.instance.tag).equals("a")
964+
o(v2.domSize).equals(undefined)
965+
o(v2.instance.domSize).equals(undefined)
966+
o(v2.dom).equals(v2.instance.dom)
967+
})
968+
o("trust(0)", function() {
969+
var component = createComponent({
970+
view: function() {return m.trust("")}
971+
})
972+
// create
973+
var v1 = m(component)
974+
render(root, v1)
975+
o(v1.instance.tag).equals("<")
976+
o(v1.domSize).equals(0)
977+
o(v1.instance.domSize).equals(0)
978+
o(v1.dom).equals(v1.instance.dom)
979+
// update
980+
var v2 = m(component)
981+
render(root, v2)
982+
o(v2.instance.tag).equals("<")
983+
o(v2.domSize).equals(0)
984+
o(v2.instance.domSize).equals(0)
985+
o(v2.dom).equals(v2.instance.dom)
986+
})
987+
o("trust(1)", function() {
988+
var component = createComponent({
989+
view: function() {return m.trust("<a></a>")}
990+
})
991+
// create
992+
var v1 = m(component)
993+
render(root, v1)
994+
o(v1.instance.tag).equals("<")
995+
o(v1.domSize).equals(1)
996+
o(v1.instance.domSize).equals(1)
997+
o(v1.dom).equals(v1.instance.dom)
998+
// update
999+
var v2 = m(component)
1000+
render(root, v2)
1001+
o(v2.instance.tag).equals("<")
1002+
o(v2.domSize).equals(1)
1003+
o(v2.instance.domSize).equals(1)
1004+
o(v2.dom).equals(v2.instance.dom)
1005+
})
1006+
o("trust(2)", function() {
1007+
var component = createComponent({
1008+
view: function() {return m.trust("<a></a><b></b>")}
1009+
})
1010+
// create
1011+
var v1 = m(component)
1012+
render(root, v1)
1013+
o(v1.instance.tag).equals("<")
1014+
o(v1.domSize).equals(2)
1015+
o(v1.instance.domSize).equals(2)
1016+
o(v1.dom).equals(v1.instance.dom)
1017+
// update
1018+
var v2 = m(component)
1019+
render(root, v2)
1020+
o(v2.instance.tag).equals("<")
1021+
o(v2.domSize).equals(2)
1022+
o(v2.instance.domSize).equals(2)
1023+
o(v2.dom).equals(v2.instance.dom)
1024+
})
1025+
o("fragment(0)", function() {
1026+
var component = createComponent({
1027+
view: function() {return []}
1028+
})
1029+
// create
1030+
var v1 = m(component)
1031+
render(root, v1)
1032+
o(v1.instance.tag).equals("[")
1033+
o(v1.domSize).equals(0)
1034+
o(v1.instance.domSize).equals(0)
1035+
o(v1.dom).equals(v1.instance.dom)
1036+
// update
1037+
var v2 = m(component)
1038+
render(root, v2)
1039+
o(v2.instance.tag).equals("[")
1040+
o(v2.domSize).equals(0)
1041+
o(v2.instance.domSize).equals(0)
1042+
o(v2.dom).equals(v2.instance.dom)
1043+
})
1044+
o("fragment(1)", function() {
1045+
var component = createComponent({
1046+
view: function() {return [m("a")]}
1047+
})
1048+
// create
1049+
var v1 = m(component)
1050+
render(root, v1)
1051+
o(v1.instance.tag).equals("[")
1052+
o(v1.domSize).equals(1)
1053+
o(v1.instance.domSize).equals(1)
1054+
o(v1.dom).equals(v1.instance.dom)
1055+
// update
1056+
var v2 = m(component)
1057+
render(root, v2)
1058+
o(v2.instance.tag).equals("[")
1059+
o(v2.domSize).equals(1)
1060+
o(v2.instance.domSize).equals(1)
1061+
o(v2.dom).equals(v2.instance.dom)
1062+
})
1063+
o("fragment(2)", function() {
1064+
var component = createComponent({
1065+
view: function() {return [m("a"), m("b")]}
1066+
})
1067+
// create
1068+
var v1 = m(component)
1069+
render(root, v1)
1070+
o(v1.instance.tag).equals("[")
1071+
o(v1.domSize).equals(2)
1072+
o(v1.instance.domSize).equals(2)
1073+
o(v1.dom).equals(v1.instance.dom)
1074+
// update
1075+
var v2 = m(component)
1076+
render(root, v2)
1077+
o(v2.instance.tag).equals("[")
1078+
o(v2.domSize).equals(2)
1079+
o(v2.instance.domSize).equals(2)
1080+
o(v2.dom).equals(v2.instance.dom)
1081+
})
1082+
o("nested component", function() {
1083+
var childComponent = createComponent({
1084+
view: function() {return [m("a"), m("b")]}
1085+
})
1086+
var parentComponent = createComponent({
1087+
view: function() {return m(childComponent)}
1088+
})
1089+
// create
1090+
var v1 = m(parentComponent)
1091+
render(root, v1)
1092+
o(v1.instance.instance.tag).equals("[")
1093+
o(v1.domSize).equals(2)
1094+
o(v1.instance.domSize).equals(2)
1095+
o(v1.instance.instance.domSize).equals(2)
1096+
o(v1.dom).equals(v1.instance.dom)
1097+
o(v1.instance.dom).equals(v1.instance.instance.dom)
1098+
// update
1099+
var v2 = m(parentComponent)
1100+
render(root, v2)
1101+
o(v2.instance.instance.tag).equals("[")
1102+
o(v2.domSize).equals(2)
1103+
o(v2.instance.domSize).equals(2)
1104+
o(v2.instance.instance.domSize).equals(2)
1105+
o(v2.dom).equals(v2.instance.dom)
1106+
o(v2.instance.dom).equals(v2.instance.instance.dom)
1107+
})
1108+
})
8731109
})
8741110
})
8751111
o.spec("Tests specific to certain component kinds", function() {

render/tests/test-createFragment.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ o.spec("createFragment", function() {
1919
render(root, vnode)
2020

2121
o(vnode.dom.nodeName).equals("A")
22+
o(vnode.domSize).equals(1)
2223
})
2324
o("handles empty fragment", function() {
2425
var vnode = fragment()
@@ -48,5 +49,6 @@ o.spec("createFragment", function() {
4849

4950
o(vnode.dom).notEquals(null)
5051
o(vnode.dom.nodeName).equals("TD")
52+
o(vnode.domSize).equals(1)
5153
})
5254
})

render/tests/test-createHTML.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ o.spec("createHTML", function() {
1919
render(root, vnode)
2020

2121
o(vnode.dom.nodeName).equals("A")
22+
o(vnode.domSize).equals(1)
2223
})
2324
o("creates text HTML", function() {
2425
var vnode = trust("a")
2526
render(root, vnode)
2627

2728
o(vnode.dom.nodeValue).equals("a")
29+
o(vnode.domSize).equals(1)
2830
})
2931
o("handles empty HTML", function() {
3032
var vnode = trust("")
@@ -59,12 +61,14 @@ o.spec("createHTML", function() {
5961

6062
o(vnode.dom.nodeName).equals("g")
6163
o(vnode.dom.namespaceURI).equals("http://www.w3.org/2000/svg")
64+
o(vnode.domSize).equals(1)
6265
})
6366
o("creates text SVG", function() {
6467
var vnode = trust("a")
6568
render(root, m("svg", vnode))
6669

6770
o(vnode.dom.nodeValue).equals("a")
71+
o(vnode.domSize).equals(1)
6872
})
6973
o("handles empty SVG", function() {
7074
var vnode = trust("")

render/tests/test-updateFragment.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ o.spec("updateFragment", function() {
2323

2424
o(updated.dom).equals(root.firstChild)
2525
o(updated.dom.nodeName).equals("B")
26+
o(updated.domSize).equals(1)
2627
})
2728
o("adds els", function() {
2829
var vnode = fragment()
@@ -57,6 +58,7 @@ o.spec("updateFragment", function() {
5758

5859
o(updated.dom).equals(root.firstChild)
5960
o(updated.dom.nodeName).equals("A")
61+
o(updated.domSize).equals(1)
6062
})
6163
o("updates to childless fragment", function() {
6264
var vnode = fragment(m("a"))
@@ -66,6 +68,7 @@ o.spec("updateFragment", function() {
6668
render(root, updated)
6769

6870
o(updated.dom).equals(null)
71+
o(updated.domSize).equals(0)
6972
o(root.childNodes.length).equals(0)
7073
})
7174
})

render/tests/test-updateNodes.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ o.spec("updateNodes", function() {
9797
o(root.childNodes.length).equals(1)
9898
o(updated.dom.nodeName).equals("A")
9999
o(updated.dom).equals(root.childNodes[0])
100+
o(updated.domSize).equals(1)
100101
})
101102
o("handles fragment noop w/ text child", function() {
102103
var vnodes = fragment("a")
@@ -108,6 +109,7 @@ o.spec("updateNodes", function() {
108109
o(root.childNodes.length).equals(1)
109110
o(updated.dom.nodeValue).equals("a")
110111
o(updated.dom).equals(root.childNodes[0])
112+
o(updated.domSize).equals(1)
111113
})
112114
o("handles undefined to null noop", function() {
113115
var vnodes = [null, m("div")]
@@ -293,6 +295,7 @@ o.spec("updateNodes", function() {
293295
o(root.childNodes.length).equals(2)
294296
o(updated[0].children[0].dom.nodeName).equals("A")
295297
o(updated[0].children[0].dom).equals(root.childNodes[0])
298+
o(updated[0].domSize).equals(1)
296299
o(updated[1].dom.nodeName).equals("B")
297300
o(updated[1].dom).equals(root.childNodes[1])
298301
})
@@ -308,6 +311,7 @@ o.spec("updateNodes", function() {
308311
o(updated[0].children[0].dom).equals(root.childNodes[0])
309312
o(updated[0].children[1].dom.nodeName).equals("A")
310313
o(updated[0].children[1].dom).equals(root.childNodes[1])
314+
o(updated[0].domSize).equals(2)
311315
o(updated[1].dom.nodeName).equals("I")
312316
o(updated[1].dom).equals(root.childNodes[2])
313317
})

0 commit comments

Comments
 (0)