diff --git a/src/testing/renderer.ts b/src/testing/renderer.ts index a5b004283..9296f2666 100644 --- a/src/testing/renderer.ts +++ b/src/testing/renderer.ts @@ -280,6 +280,9 @@ export function assertion(renderFunc: () => DNode | DNode[]) { const node = findNode(render, wrapped); node.children = node.children || []; let childrenResult = children(); + if (!Array.isArray(childrenResult)) { + childrenResult = [childrenResult]; + } switch (type) { case 'prepend': node.children = [...childrenResult, ...node.children]; diff --git a/tests/testing/unit/renderer.tsx b/tests/testing/unit/renderer.tsx index 1071eb84b..01fe2cca3 100644 --- a/tests/testing/unit/renderer.tsx +++ b/tests/testing/unit/renderer.tsx @@ -758,5 +758,19 @@ describe('test renderer', () => { )) ); }); + + it('Should wrap single children in an array when calling setChildren', () => { + const factory = create().children(); + const TestWidget = factory(() => 'foo'); + const App = create()(() => { + return bar; + }); + const WrappedTestWudget = wrap(TestWidget); + + const testAssertion = assertion(() => bar); + const r = renderer(() => ); + + r.expect(testAssertion.setChildren(WrappedTestWudget, () => 'bar')); + }); }); });