diff --git a/packages/react/test-app/Pages/Visits/ReloadOnMount.jsx b/packages/react/test-app/Pages/Visits/ReloadOnMount.jsx new file mode 100644 index 000000000..392c02480 --- /dev/null +++ b/packages/react/test-app/Pages/Visits/ReloadOnMount.jsx @@ -0,0 +1,12 @@ +import { router } from '@inertiajs/react' +import { useEffect } from 'react' + +export default (props) => { + useEffect(() => { + setTimeout(() => { + router.reload({ only: ['name'] }) + }) + }) + + return
Name is {props.name}
+} diff --git a/packages/svelte/test-app/Pages/Visits/ReloadOnMount.svelte b/packages/svelte/test-app/Pages/Visits/ReloadOnMount.svelte new file mode 100644 index 000000000..82d626ed1 --- /dev/null +++ b/packages/svelte/test-app/Pages/Visits/ReloadOnMount.svelte @@ -0,0 +1,14 @@ + + + +
Name is {name}
diff --git a/packages/vue3/test-app/Pages/Visits/ReloadOnMount.vue b/packages/vue3/test-app/Pages/Visits/ReloadOnMount.vue new file mode 100644 index 000000000..c5ef1540b --- /dev/null +++ b/packages/vue3/test-app/Pages/Visits/ReloadOnMount.vue @@ -0,0 +1,16 @@ + + + diff --git a/tests/app/server.js b/tests/app/server.js index f68696c71..ab0f47f26 100644 --- a/tests/app/server.js +++ b/tests/app/server.js @@ -175,6 +175,20 @@ app.delete('/dump/delete', upload.any(), (req, res) => }), ) +app.get('/visits/reload-on-mount', upload.any(), (req, res) => { + if (req.headers['x-inertia-partial-data']) { + return inertia.render(req, res, { + component: 'Visits/ReloadOnMount', + props: { name: 'mounted!' }, + }) + } + + inertia.render(req, res, { + component: 'Visits/ReloadOnMount', + props: { name: 'not mounted!' }, + }) +}) + app.get('/persistent-layouts/shorthand/simple/page-a', (req, res) => inertia.render(req, res, { props: { foo: 'bar', baz: 'example' } }), ) diff --git a/tests/manual-visits.spec.ts b/tests/manual-visits.spec.ts index e2d82efe1..0748a63dd 100644 --- a/tests/manual-visits.spec.ts +++ b/tests/manual-visits.spec.ts @@ -866,6 +866,11 @@ test.describe('Partial Reloads', () => { }) }) +test('can reload on mount', async ({ page }) => { + await page.goto('/visits/reload-on-mount') + await expect(page.getByText('Name is mounted!')).toBeVisible() +}) + test.describe('Error bags', () => { test.beforeEach(async ({ page }) => { pageLoads.watch(page)