Skip to content

Commit 60f5c02

Browse files
Add tests for render props (#86)
1 parent 5da0fc7 commit 60f5c02

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

src/no-ssr/reflect.test.tsx

+36
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,42 @@ describe('plain callbacks with scopeBind under the hood', () => {
293293
expect(scope.getState($name)).toBe('Bob');
294294
expect($name.getState()).toBe('');
295295
});
296+
297+
test('render props work', async () => {
298+
const RenderComp = (props: {
299+
prefix: string;
300+
renderMe: (props: { value: string }) => React.ReactNode;
301+
}) => {
302+
return <div>{props.renderMe({ value: `${props.prefix}: text` })}</div>;
303+
};
304+
const Text = (props: { value: string }) => {
305+
return <span>{props.value}</span>;
306+
};
307+
308+
const ReflectedRender = reflect({
309+
view: RenderComp,
310+
bind: {
311+
prefix: createStore('Hello'),
312+
renderMe: Text,
313+
},
314+
});
315+
316+
const scope = fork();
317+
318+
const container = render(
319+
<Provider value={scope}>
320+
<ReflectedRender />
321+
</Provider>,
322+
);
323+
324+
expect(container.container.firstChild).toMatchInlineSnapshot(`
325+
<div>
326+
<span>
327+
Hello: text
328+
</span>
329+
</div>
330+
`);
331+
});
296332
});
297333

298334
describe('hooks', () => {

0 commit comments

Comments
 (0)