@@ -3,18 +3,30 @@ import "../../test/MessageChannel";
33import { lazy , createSignal , createResource , useTransition , enableScheduling } from "../../src" ;
44import { render , Suspense , SuspenseList } from "../src" ;
55
6-
76global . queueMicrotask = setImmediate ;
87enableScheduling ( ) ;
98
109beforeEach ( ( ) => {
1110 jest . useFakeTimers ( ) ;
12- } )
11+ } ) ;
1312afterEach ( ( ) => {
1413 jest . useRealTimers ( ) ;
15- } )
14+ } ) ;
15+ describe ( "Testing Basics" , ( ) => {
16+ test ( "Children are reactive" , ( ) => {
17+ let div = document . createElement ( "div" ) ;
18+ let increment : ( ) => void ;
19+ render ( ( ) => {
20+ const [ count , setCount ] = createSignal ( 0 ) ;
21+ increment = ( ) => setCount ( count ( ) + 1 ) ;
22+ return < Suspense > { count ( ) } </ Suspense > ;
23+ } , div ) ;
24+ expect ( div . innerHTML ) . toBe ( "0" ) ;
25+ increment ! ( ) ;
26+ expect ( div . innerHTML ) . toBe ( "1" ) ;
27+ } ) ;
28+ } ) ;
1629describe ( "Testing Suspense" , ( ) => {
17-
1830 let div = document . createElement ( "div" ) ,
1931 disposer : ( ) => void ,
2032 resolvers : Function [ ] = [ ] ,
@@ -40,7 +52,7 @@ describe("Testing Suspense", () => {
4052 expect ( div . innerHTML ) . toBe ( "Loading" ) ;
4153 } ) ;
4254
43- test ( "Toggle Suspense control flow" , async ( done ) => {
55+ test ( "Toggle Suspense control flow" , async done => {
4456 for ( const r of resolvers ) r ( { default : ChildComponent } ) ;
4557
4658 queueMicrotask ( ( ) => {
@@ -49,7 +61,7 @@ describe("Testing Suspense", () => {
4961 } ) ;
5062 } ) ;
5163
52- test ( "Toggle with refresh transition" , async ( done ) => {
64+ test ( "Toggle with refresh transition" , async done => {
5365 const [ pending , start ] = useTransition ( ) ;
5466 let finished = false ;
5567
@@ -62,20 +74,20 @@ describe("Testing Suspense", () => {
6274 expect ( div . innerHTML ) . toBe ( "Hi, .Hello " ) ;
6375 expect ( pending ( ) ) . toBe ( true ) ;
6476 expect ( finished ) . toBe ( false ) ;
65-
77+
6678 // Exhausts create-resource setTimeout
6779 jest . runAllTimers ( ) ;
6880 // wait update suspence state
6981 await Promise . resolve ( ) ;
70- // wait update computation
82+ // wait update computation
7183 jest . runAllTicks ( ) ;
7284 jest . runAllTimers ( ) ;
7385 // wait write signal succ
74- queueMicrotask ( ( ) => {
86+ queueMicrotask ( ( ) => {
7587 expect ( div . innerHTML ) . toBe ( "Hi, Jo.Hello Jo" ) ;
7688 expect ( pending ( ) ) . toBe ( false ) ;
7789 expect ( finished ) . toBe ( true ) ;
78- done ( )
90+ done ( ) ;
7991 } ) ;
8092 jest . runAllTicks ( ) ;
8193 } ) ;
@@ -159,11 +171,11 @@ describe("SuspenseList", () => {
159171 jest . advanceTimersByTime ( 110 ) ;
160172 await Promise . resolve ( ) ;
161173 expect ( div . innerHTML ) . toBe ( "<div>Loading 1</div><div>Loading 2</div><div>Loading 3</div>" ) ;
162-
174+
163175 jest . advanceTimersByTime ( 100 ) ;
164176 await Promise . resolve ( ) ;
165177 expect ( div . innerHTML ) . toBe ( "<div>A</div><div>B</div><div>Loading 3</div>" ) ;
166-
178+
167179 jest . advanceTimersByTime ( 100 ) ;
168180 await Promise . resolve ( ) ;
169181 expect ( div . innerHTML ) . toBe ( "<div>A</div><div>B</div><div>C</div>" ) ;
@@ -191,12 +203,11 @@ describe("SuspenseList", () => {
191203 jest . advanceTimersByTime ( 110 ) ;
192204 await Promise . resolve ( ) ;
193205 expect ( div . innerHTML ) . toBe ( "" ) ;
194-
206+
195207 jest . advanceTimersByTime ( 100 ) ;
196208 await Promise . resolve ( ) ;
197209 expect ( div . innerHTML ) . toBe ( "<div>A</div><div>B</div>" ) ;
198-
199-
210+
200211 jest . advanceTimersByTime ( 100 ) ;
201212 await Promise . resolve ( ) ;
202213 expect ( div . innerHTML ) . toBe ( "<div>A</div><div>B</div><div>C</div>" ) ;
0 commit comments