1
1
/* imports */
2
- import {
3
- setBodyComponent ,
4
- integrityCheck ,
5
- version ,
6
- diff ,
7
- hydrate ,
8
- delegate ,
9
- undelegate ,
10
- callFocus ,
11
- callBlur ,
12
- eventJSON ,
13
- } from '../ts/miso' ;
2
+ import { diff } from './miso/dom' ;
3
+ import { delegate , undelegate , eventJSON } from './miso/event' ;
4
+ import { hydrate , integrityCheck } from './miso/iso' ;
5
+ import { version , callFocus , callBlur , setBodyComponent } from './miso/util' ;
6
+ import { VTree } from './miso/types' ;
14
7
15
8
import {
16
9
test ,
@@ -34,7 +27,7 @@ afterEach(() => {
34
27
} ) ;
35
28
36
29
/* smart constructors */
37
- function vcomp ( mount , unmount , props , css , children , ref , oc , od , bd , key ) {
30
+ function vcomp ( mount , unmount , props , css , children , ref , oc , od , bd , key ) : VTree {
38
31
return {
39
32
type : 'vcomp' ,
40
33
tag : 'div' ,
@@ -53,7 +46,7 @@ function vcomp(mount, unmount, props, css, children, ref, oc, od, bd, key) {
53
46
} ;
54
47
}
55
48
56
- function vnode ( tag , children , props , css , ns , ref , oc , od , bd , key ) {
49
+ function vnode ( tag , children , props , css , ns , ref , oc , od , bd , key ) : VTree {
57
50
return {
58
51
type : 'vnode' ,
59
52
tag : tag ,
@@ -69,7 +62,7 @@ function vnode(tag, children, props, css, ns, ref, oc, od, bd, key) {
69
62
} ;
70
63
}
71
64
72
- function vnodeKeyed ( tag , key ) {
65
+ function vnodeKeyed ( tag , key ) : VTree {
73
66
return {
74
67
type : 'vnode' ,
75
68
tag : tag ,
@@ -85,7 +78,7 @@ function vnodeKeyed(tag, key) {
85
78
} ;
86
79
}
87
80
88
- function vnodeKids ( tag , kids ) {
81
+ function vnodeKids ( tag , kids ) : VTree {
89
82
return {
90
83
type : 'vnode' ,
91
84
tag : tag ,
@@ -100,14 +93,14 @@ function vnodeKids(tag, kids) {
100
93
} ;
101
94
}
102
95
103
- function vtext ( txt ) {
96
+ function vtext ( txt ) : VTree {
104
97
return {
105
98
type : 'vtext' ,
106
99
text : txt ,
107
100
} ;
108
101
}
109
102
110
- function vtextKeyed ( txt , key ) {
103
+ function vtextKeyed ( txt , key ) : VTree {
111
104
return {
112
105
type : 'vtext' ,
113
106
text : txt ,
@@ -1630,19 +1623,14 @@ describe('js tests', () => {
1630
1623
// expect(succeeded).toEqual(false);
1631
1624
// });
1632
1625
1633
- // // dmj: jsdom catches this, not possible to run
1634
- // // ● Should fail to mount on a text node
1635
- // // HierarchyRequestError: Node can't be inserted in a #text parent.
1636
- // //
1637
- // // test('Should fail to mount on a text node', () => {
1638
- // //
1639
- // // var body = document.body;
1640
- // // var misoTxt = document.createTextNode("foo");
1641
- // // body.appendChild(misoTxt);
1642
- // // var currentNode = vnodeKids('div', [ vnodeKids('div', [ vtext("foo") ]) ]);
1643
- // // var succeeded = hydrate(true, misoTxt, currentNode);
1644
- // // expect(succeeded).toEqual(false);
1645
- // // });
1626
+ test ( 'Should fail to mount on a text node' , ( ) => {
1627
+ var body = document . body ;
1628
+ var misoTxt = document . createTextNode ( "foo" ) ;
1629
+ body . appendChild ( misoTxt ) ;
1630
+ var currentNode = vnodeKids ( 'div' , [ vnodeKids ( 'div' , [ vtext ( "foo" ) ] ) ] ) ;
1631
+ var succeeded = hydrate ( true , misoTxt , currentNode ) ;
1632
+ expect ( succeeded ) . toEqual ( false ) ;
1633
+ } ) ;
1646
1634
1647
1635
test ( 'Should not hydrate on an empty page' , ( ) => {
1648
1636
var currentNode = vnodeKids ( 'div' , [ vnodeKids ( 'div' , [ vtext ( 'foo' ) ] ) ] ) ;
@@ -1669,7 +1657,7 @@ describe('js tests', () => {
1669
1657
var result = hydrate ( false , body , vtree ) ;
1670
1658
expect ( result ) . toEqual ( true ) ;
1671
1659
var check = integrityCheck ( true , vtree ) ;
1672
- expect ( check ) . toBe ( 1 ) ;
1660
+ expect ( check ) . toBe ( true ) ;
1673
1661
} ) ;
1674
1662
1675
1663
test ( 'Should fail integrity check on bad tag' , ( ) => {
@@ -1691,10 +1679,10 @@ describe('js tests', () => {
1691
1679
var result = hydrate ( false , body , vtree ) ;
1692
1680
expect ( result ) . toEqual ( true ) ;
1693
1681
var check = integrityCheck ( true , vtree ) ;
1694
- expect ( check ) . toBe ( 1 ) ;
1682
+ expect ( check ) . toBe ( true ) ;
1695
1683
vtree . tag = 'lol' ;
1696
1684
check = integrityCheck ( true , vtree ) ;
1697
- expect ( check ) . toBe ( 0 ) ;
1685
+ expect ( check ) . toBe ( false ) ;
1698
1686
} ) ;
1699
1687
1700
1688
test ( 'Should fail integrity check on bad tag in hydrate w/ logging enabled' , ( ) => {
@@ -1736,10 +1724,10 @@ describe('js tests', () => {
1736
1724
var result = hydrate ( false , body , vtree ) ;
1737
1725
expect ( result ) . toEqual ( true ) ;
1738
1726
var check = integrityCheck ( true , vtree ) ;
1739
- expect ( check ) . toBe ( 1 ) ;
1727
+ expect ( check ) . toBe ( true ) ;
1740
1728
vtree . children [ 0 ] . text = 'oops' ;
1741
1729
check = integrityCheck ( true , vtree ) ;
1742
- expect ( check ) . toBe ( 0 ) ;
1730
+ expect ( check ) . toBe ( false ) ;
1743
1731
} ) ;
1744
1732
1745
1733
test ( 'Should fail integrity check on differing child lengths' , ( ) => {
@@ -1761,7 +1749,7 @@ describe('js tests', () => {
1761
1749
var result = hydrate ( false , body , vtree ) ;
1762
1750
expect ( result ) . toEqual ( true ) ;
1763
1751
var check = integrityCheck ( true , vtree ) ;
1764
- expect ( check ) . toBe ( 1 ) ;
1752
+ expect ( check ) . toBe ( true ) ;
1765
1753
vtree . children = [ ] ;
1766
1754
check = integrityCheck ( true , vtree ) ;
1767
1755
expect ( check ) . toBe ( false ) ;
@@ -1787,10 +1775,10 @@ describe('js tests', () => {
1787
1775
var result = hydrate ( false , body , vtree ) ;
1788
1776
expect ( result ) . toEqual ( true ) ;
1789
1777
var check = integrityCheck ( true , vtree ) ;
1790
- expect ( check ) . toBe ( 1 ) ;
1778
+ expect ( check ) . toBe ( true ) ;
1791
1779
vtree . css [ 'background-color' ] = 'green' ;
1792
1780
check = integrityCheck ( true , vtree ) ;
1793
- expect ( check ) . toBe ( 0 ) ;
1781
+ expect ( check ) . toBe ( false ) ;
1794
1782
} ) ;
1795
1783
1796
1784
test ( 'Should fail integrity check on differing styles, for color' , ( ) => {
@@ -1814,10 +1802,10 @@ describe('js tests', () => {
1814
1802
var result = hydrate ( false , body , vtree ) ;
1815
1803
expect ( result ) . toEqual ( true ) ;
1816
1804
var check = integrityCheck ( true , vtree ) ;
1817
- expect ( check ) . toBe ( 1 ) ;
1805
+ expect ( check ) . toBe ( true ) ;
1818
1806
vtree . css [ 'color' ] = '#dddddd' ;
1819
1807
check = integrityCheck ( true , vtree ) ;
1820
- expect ( check ) . toBe ( 0 ) ;
1808
+ expect ( check ) . toBe ( false ) ;
1821
1809
} ) ;
1822
1810
1823
1811
test ( 'Should fail integrity check on differing props' , ( ) => {
@@ -1841,10 +1829,10 @@ describe('js tests', () => {
1841
1829
var result = hydrate ( false , body , vtree ) ;
1842
1830
expect ( result ) . toEqual ( true ) ;
1843
1831
var check = integrityCheck ( true , vtree ) ;
1844
- expect ( check ) . toBe ( 1 ) ;
1832
+ expect ( check ) . toBe ( true ) ;
1845
1833
vtree . props [ 'class' ] = 'something-else' ;
1846
1834
check = integrityCheck ( true , vtree ) ;
1847
- expect ( check ) . toBe ( 0 ) ;
1835
+ expect ( check ) . toBe ( false ) ;
1848
1836
} ) ;
1849
1837
1850
1838
test ( 'Should fail integrity check on differing height / width' , ( ) => {
@@ -1870,11 +1858,11 @@ describe('js tests', () => {
1870
1858
var result = hydrate ( false , body , vtree ) ;
1871
1859
expect ( result ) . toEqual ( true ) ;
1872
1860
var check = integrityCheck ( true , vtree ) ;
1873
- expect ( check ) . toBe ( 1 ) ;
1861
+ expect ( check ) . toBe ( true ) ;
1874
1862
vtree . props [ 'height' ] = '200' ;
1875
1863
vtree . props [ 'width' ] = '200' ;
1876
1864
check = integrityCheck ( true , vtree ) ;
1877
- expect ( check ) . toBe ( 0 ) ;
1865
+ expect ( check ) . toBe ( false ) ;
1878
1866
} ) ;
1879
1867
1880
1868
test ( 'Should fail integrity check on random property (title)' , ( ) => {
@@ -1897,10 +1885,10 @@ describe('js tests', () => {
1897
1885
var result = hydrate ( false , body , vtree ) ;
1898
1886
expect ( result ) . toEqual ( true ) ;
1899
1887
var check = integrityCheck ( true , vtree ) ;
1900
- expect ( check ) . toBe ( 1 ) ;
1888
+ expect ( check ) . toBe ( true ) ;
1901
1889
vtree . props [ 'title' ] = 'woz' ;
1902
1890
check = integrityCheck ( true , vtree ) ;
1903
- expect ( check ) . toBe ( 0 ) ;
1891
+ expect ( check ) . toBe ( false ) ;
1904
1892
} ) ;
1905
1893
1906
1894
test ( 'Should fail integrity check on href' , ( ) => {
@@ -1924,10 +1912,10 @@ describe('js tests', () => {
1924
1912
var result = hydrate ( false , body , vtree ) ;
1925
1913
expect ( result ) . toEqual ( true ) ;
1926
1914
var check = integrityCheck ( true , vtree ) ;
1927
- expect ( check ) . toBe ( 1 ) ;
1915
+ expect ( check ) . toBe ( true ) ;
1928
1916
vtree . props [ 'href' ] = 'notgoogle.com' ;
1929
1917
check = integrityCheck ( true , vtree ) ;
1930
- expect ( check ) . toBe ( 0 ) ;
1918
+ expect ( check ) . toBe ( false ) ;
1931
1919
} ) ;
1932
1920
1933
1921
test ( 'Should fail integrity check on vtext domRef' , ( ) => {
@@ -1951,10 +1939,10 @@ describe('js tests', () => {
1951
1939
var result = hydrate ( false , body , vtree ) ;
1952
1940
expect ( result ) . toEqual ( true ) ;
1953
1941
var check = integrityCheck ( true , vtree ) ;
1954
- expect ( check ) . toBe ( 1 ) ;
1942
+ expect ( check ) . toBe ( true ) ;
1955
1943
vtree . children [ 0 ] . domRef = document . createElement ( 'div' ) ;
1956
1944
check = integrityCheck ( true , vtree ) ;
1957
- expect ( check ) . toBe ( 0 ) ;
1945
+ expect ( check ) . toBe ( false ) ;
1958
1946
} ) ;
1959
1947
1960
1948
test ( 'Should fail integrity check on unknown property test' , ( ) => {
@@ -1976,7 +1964,7 @@ describe('js tests', () => {
1976
1964
var result = hydrate ( false , body , vtree ) ;
1977
1965
expect ( result ) . toEqual ( true ) ;
1978
1966
var check = integrityCheck ( true , vtree ) ;
1979
- expect ( check ) . toBe ( 0 ) ;
1967
+ expect ( check ) . toBe ( false ) ;
1980
1968
} ) ;
1981
1969
1982
1970
test ( 'Should set body[data-component-id] via setBodyComponent()' , ( ) => {
@@ -2080,7 +2068,7 @@ describe('js tests', () => {
2080
2068
} ;
2081
2069
} ;
2082
2070
2083
- var vtree = mkVComp ( 'one' , [ mkVComp ( 'two' , [ mkVComp ( 'three' , [ ] ) ] ) ] ) ;
2071
+ var vtree : VTree = mkVComp ( 'one' , [ mkVComp ( 'two' , [ mkVComp ( 'three' , [ ] ) ] ) ] ) ;
2084
2072
diff ( null , vtree , document . body ) ;
2085
2073
diff ( vtree , null , document . body ) ;
2086
2074
expect ( unmounts ) . toEqual ( [ 'one' , 'two' , 'three' ] ) ;
0 commit comments