diff options
Diffstat (limited to 'packages/astro')
3 files changed, 15 insertions, 2 deletions
diff --git a/packages/astro/test/fixtures/react-component/src/components/WithChildren.jsx b/packages/astro/test/fixtures/react-component/src/components/WithChildren.jsx new file mode 100644 index 000000000..cdcb0e0a6 --- /dev/null +++ b/packages/astro/test/fixtures/react-component/src/components/WithChildren.jsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export default function ({ children }) { + return <div className="with-children">{children}</div>; +} diff --git a/packages/astro/test/fixtures/react-component/src/pages/index.astro b/packages/astro/test/fixtures/react-component/src/pages/index.astro index 936e98979..abd3d4299 100644 --- a/packages/astro/test/fixtures/react-component/src/pages/index.astro +++ b/packages/astro/test/fixtures/react-component/src/pages/index.astro @@ -7,6 +7,7 @@ import {Research2} from '../components/Research.jsx'; import Pure from '../components/Pure.jsx'; import TypeScriptComponent from '../components/TypeScriptComponent'; import CloneElement from '../components/CloneElement'; +import WithChildren from '../components/WithChildren'; const someProps = { text: 'Hello world!', @@ -31,5 +32,7 @@ const someProps = { <TypeScriptComponent client:load /> <Pure /> <CloneElement /> + <WithChildren client:load>test</WithChildren> + <WithChildren client:load children="test" /> </body> </html> diff --git a/packages/astro/test/react-component.test.js b/packages/astro/test/react-component.test.js index 19bd42a43..8c22cc861 100644 --- a/packages/astro/test/react-component.test.js +++ b/packages/astro/test/react-component.test.js @@ -42,11 +42,16 @@ describe('React Components', () => { expect($('#pure')).to.have.lengthOf(1); // test 8: Check number of islands - expect($('astro-island[uid]')).to.have.lengthOf(5); + expect($('astro-island[uid]')).to.have.lengthOf(7); // test 9: Check island deduplication const uniqueRootUIDs = new Set($('astro-island').map((i, el) => $(el).attr('uid'))); - expect(uniqueRootUIDs.size).to.equal(4); + expect(uniqueRootUIDs.size).to.equal(6); + + // test 10: Should properly render children passed as props + const islandsWithChildren = $('.with-children'); + expect(islandsWithChildren).to.have.lengthOf(2); + expect($(islandsWithChildren[0]).html()).to.equal($(islandsWithChildren[1]).html()); }); it('Can load Vue', async () => { |