Skip to content

Commit 810cff4

Browse files
committed
Add small tests for prev context stack
1 parent 949725a commit 810cff4

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

src/__tests__/suspense.test.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -338,19 +338,23 @@ describe('renderPrepass', () => {
338338
return null
339339
})
340340

341-
const Wrapper = () => (
342-
<Fragment>
343-
<Context.Provider value="a">
344-
<TestA />
345-
</Context.Provider>
346-
<Context.Provider value="b">
347-
<TestB />
348-
</Context.Provider>
349-
<Context.Provider value="c">
350-
<TestC />
351-
</Context.Provider>
352-
</Fragment>
353-
)
341+
const Wrapper = () => {
342+
expect(useContext(Context)).toBe('default')
343+
344+
return (
345+
<Fragment>
346+
<Context.Provider value="a">
347+
<TestA />
348+
</Context.Provider>
349+
<Context.Provider value="b">
350+
<TestB />
351+
</Context.Provider>
352+
<Context.Provider value="c">
353+
<TestC />
354+
</Context.Provider>
355+
</Fragment>
356+
)
357+
}
354358

355359
const render$ = renderPrepass(<Wrapper />)
356360
expect(TestC).toHaveBeenCalledTimes(1)

src/__tests__/visitor.test.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import {
1313
setCurrentContextMap,
1414
getCurrentContextMap,
1515
getCurrentContextStore,
16+
flushPrevContextMap,
17+
flushPrevContextStore,
1618
readContextValue
1719
} from '../internals'
1820

@@ -82,13 +84,15 @@ describe('visitElement', () => {
8284
}
8385

8486
expect(readContextValue(Context)).toBe('testA')
87+
expect(flushPrevContextStore()).toEqual([Context, undefined])
8588
expect(leaf).toHaveBeenCalledWith('testA')
8689

8790
for (let i = 0, child = makeChild('testB'); i <= 3 && child; i++) {
8891
child = visitElement(child, [], () => {})[0]
8992
}
9093

9194
expect(readContextValue(Context)).toBe('testB')
95+
expect(flushPrevContextStore()).toEqual([Context, 'testA'])
9296
expect(leaf).toHaveBeenCalledWith('testB')
9397
})
9498

@@ -227,8 +231,11 @@ describe('visitElement', () => {
227231

228232
// We first populate the context
229233
visitElement(<Outer />, [], () => {})
234+
230235
// Then manually mount Inner afterwards
231236
const children = visitElement(<Inner />, [], () => {})
237+
238+
expect(flushPrevContextMap()).toEqual({ value: undefined })
232239
expect(children.length).toBe(1)
233240
expect(children[0].type).toBe(Noop)
234241
expect(children[0].props.children).toBe('test')

0 commit comments

Comments
 (0)