Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions e2e/react-start/server-functions/src/routeTree.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@ import { Route as ConsistentRouteImport } from './routes/consistent'
import { Route as AbortSignalRouteImport } from './routes/abort-signal'
import { Route as IndexRouteImport } from './routes/index'
import { Route as RedirectTestIndexRouteImport } from './routes/redirect-test/index'
import { Route as RedirectTestSsrIndexRouteImport } from './routes/redirect-test-ssr/index'
import { Route as PrimitivesIndexRouteImport } from './routes/primitives/index'
import { Route as MiddlewareIndexRouteImport } from './routes/middleware/index'
import { Route as FormdataRedirectIndexRouteImport } from './routes/formdata-redirect/index'
import { Route as FactoryIndexRouteImport } from './routes/factory/index'
import { Route as CookiesIndexRouteImport } from './routes/cookies/index'
import { Route as RedirectTestTargetRouteImport } from './routes/redirect-test/target'
import { Route as RedirectTestSsrTargetRouteImport } from './routes/redirect-test-ssr/target'
import { Route as MiddlewareSendServerFnRouteImport } from './routes/middleware/send-serverFn'
import { Route as MiddlewareRequestMiddlewareRouteImport } from './routes/middleware/request-middleware'
import { Route as MiddlewareClientMiddlewareRouterRouteImport } from './routes/middleware/client-middleware-router'
Expand Down Expand Up @@ -105,6 +107,11 @@ const RedirectTestIndexRoute = RedirectTestIndexRouteImport.update({
path: '/redirect-test/',
getParentRoute: () => rootRouteImport,
} as any)
const RedirectTestSsrIndexRoute = RedirectTestSsrIndexRouteImport.update({
id: '/redirect-test-ssr/',
path: '/redirect-test-ssr/',
getParentRoute: () => rootRouteImport,
} as any)
const PrimitivesIndexRoute = PrimitivesIndexRouteImport.update({
id: '/primitives/',
path: '/primitives/',
Expand Down Expand Up @@ -135,6 +142,11 @@ const RedirectTestTargetRoute = RedirectTestTargetRouteImport.update({
path: '/redirect-test/target',
getParentRoute: () => rootRouteImport,
} as any)
const RedirectTestSsrTargetRoute = RedirectTestSsrTargetRouteImport.update({
id: '/redirect-test-ssr/target',
path: '/redirect-test-ssr/target',
getParentRoute: () => rootRouteImport,
} as any)
const MiddlewareSendServerFnRoute = MiddlewareSendServerFnRouteImport.update({
id: '/middleware/send-serverFn',
path: '/middleware/send-serverFn',
Expand Down Expand Up @@ -182,12 +194,14 @@ export interface FileRoutesByFullPath {
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
'/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute
'/redirect-test/target': typeof RedirectTestTargetRoute
'/cookies': typeof CookiesIndexRoute
'/factory': typeof FactoryIndexRoute
'/formdata-redirect': typeof FormdataRedirectIndexRoute
'/middleware': typeof MiddlewareIndexRoute
'/primitives': typeof PrimitivesIndexRoute
'/redirect-test-ssr': typeof RedirectTestSsrIndexRoute
'/redirect-test': typeof RedirectTestIndexRoute
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
}
Expand All @@ -209,12 +223,14 @@ export interface FileRoutesByTo {
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
'/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute
'/redirect-test/target': typeof RedirectTestTargetRoute
'/cookies': typeof CookiesIndexRoute
'/factory': typeof FactoryIndexRoute
'/formdata-redirect': typeof FormdataRedirectIndexRoute
'/middleware': typeof MiddlewareIndexRoute
'/primitives': typeof PrimitivesIndexRoute
'/redirect-test-ssr': typeof RedirectTestSsrIndexRoute
'/redirect-test': typeof RedirectTestIndexRoute
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
}
Expand All @@ -237,12 +253,14 @@ export interface FileRoutesById {
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
'/redirect-test-ssr/target': typeof RedirectTestSsrTargetRoute
'/redirect-test/target': typeof RedirectTestTargetRoute
'/cookies/': typeof CookiesIndexRoute
'/factory/': typeof FactoryIndexRoute
'/formdata-redirect/': typeof FormdataRedirectIndexRoute
'/middleware/': typeof MiddlewareIndexRoute
'/primitives/': typeof PrimitivesIndexRoute
'/redirect-test-ssr/': typeof RedirectTestSsrIndexRoute
'/redirect-test/': typeof RedirectTestIndexRoute
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
}
Expand All @@ -266,12 +284,14 @@ export interface FileRouteTypes {
| '/middleware/client-middleware-router'
| '/middleware/request-middleware'
| '/middleware/send-serverFn'
| '/redirect-test-ssr/target'
| '/redirect-test/target'
| '/cookies'
| '/factory'
| '/formdata-redirect'
| '/middleware'
| '/primitives'
| '/redirect-test-ssr'
| '/redirect-test'
| '/formdata-redirect/target/$name'
fileRoutesByTo: FileRoutesByTo
Expand All @@ -293,12 +313,14 @@ export interface FileRouteTypes {
| '/middleware/client-middleware-router'
| '/middleware/request-middleware'
| '/middleware/send-serverFn'
| '/redirect-test-ssr/target'
| '/redirect-test/target'
| '/cookies'
| '/factory'
| '/formdata-redirect'
| '/middleware'
| '/primitives'
| '/redirect-test-ssr'
| '/redirect-test'
| '/formdata-redirect/target/$name'
id:
Expand All @@ -320,12 +342,14 @@ export interface FileRouteTypes {
| '/middleware/client-middleware-router'
| '/middleware/request-middleware'
| '/middleware/send-serverFn'
| '/redirect-test-ssr/target'
| '/redirect-test/target'
| '/cookies/'
| '/factory/'
| '/formdata-redirect/'
| '/middleware/'
| '/primitives/'
| '/redirect-test-ssr/'
| '/redirect-test/'
| '/formdata-redirect/target/$name'
fileRoutesById: FileRoutesById
Expand All @@ -348,12 +372,14 @@ export interface RootRouteChildren {
MiddlewareClientMiddlewareRouterRoute: typeof MiddlewareClientMiddlewareRouterRoute
MiddlewareRequestMiddlewareRoute: typeof MiddlewareRequestMiddlewareRoute
MiddlewareSendServerFnRoute: typeof MiddlewareSendServerFnRoute
RedirectTestSsrTargetRoute: typeof RedirectTestSsrTargetRoute
RedirectTestTargetRoute: typeof RedirectTestTargetRoute
CookiesIndexRoute: typeof CookiesIndexRoute
FactoryIndexRoute: typeof FactoryIndexRoute
FormdataRedirectIndexRoute: typeof FormdataRedirectIndexRoute
MiddlewareIndexRoute: typeof MiddlewareIndexRoute
PrimitivesIndexRoute: typeof PrimitivesIndexRoute
RedirectTestSsrIndexRoute: typeof RedirectTestSsrIndexRoute
RedirectTestIndexRoute: typeof RedirectTestIndexRoute
FormdataRedirectTargetNameRoute: typeof FormdataRedirectTargetNameRoute
}
Expand Down Expand Up @@ -458,6 +484,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof RedirectTestIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/redirect-test-ssr/': {
id: '/redirect-test-ssr/'
path: '/redirect-test-ssr'
fullPath: '/redirect-test-ssr'
preLoaderRoute: typeof RedirectTestSsrIndexRouteImport
parentRoute: typeof rootRouteImport
}
'/primitives/': {
id: '/primitives/'
path: '/primitives'
Expand Down Expand Up @@ -500,6 +533,13 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof RedirectTestTargetRouteImport
parentRoute: typeof rootRouteImport
}
'/redirect-test-ssr/target': {
id: '/redirect-test-ssr/target'
path: '/redirect-test-ssr/target'
fullPath: '/redirect-test-ssr/target'
preLoaderRoute: typeof RedirectTestSsrTargetRouteImport
parentRoute: typeof rootRouteImport
}
'/middleware/send-serverFn': {
id: '/middleware/send-serverFn'
path: '/middleware/send-serverFn'
Expand Down Expand Up @@ -556,12 +596,14 @@ const rootRouteChildren: RootRouteChildren = {
MiddlewareClientMiddlewareRouterRoute: MiddlewareClientMiddlewareRouterRoute,
MiddlewareRequestMiddlewareRoute: MiddlewareRequestMiddlewareRoute,
MiddlewareSendServerFnRoute: MiddlewareSendServerFnRoute,
RedirectTestSsrTargetRoute: RedirectTestSsrTargetRoute,
RedirectTestTargetRoute: RedirectTestTargetRoute,
CookiesIndexRoute: CookiesIndexRoute,
FactoryIndexRoute: FactoryIndexRoute,
FormdataRedirectIndexRoute: FormdataRedirectIndexRoute,
MiddlewareIndexRoute: MiddlewareIndexRoute,
PrimitivesIndexRoute: PrimitivesIndexRoute,
RedirectTestSsrIndexRoute: RedirectTestSsrIndexRoute,
RedirectTestIndexRoute: RedirectTestIndexRoute,
FormdataRedirectTargetNameRoute: FormdataRedirectTargetNameRoute,
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { useQuery } from '@tanstack/react-query'
import { createFileRoute, redirect } from '@tanstack/react-router'
import { createServerFn, useServerFn } from '@tanstack/react-start'
import { Suspense } from 'react'

const $redirectServerFn = createServerFn({ method: 'GET' }).handler(
async () => {
throw redirect({ to: '/redirect-test-ssr/target' })
},
)

export const Route = createFileRoute('/redirect-test-ssr/')({
component: RouteComponent,
ssr: true,
})

function RouteComponent() {
const redirectFn = useServerFn($redirectServerFn)
const query = useQuery({
queryKey: ['redirect-test-ssr'],
queryFn: () => redirectFn(),
})

return (
<div>
<h1 data-testid="redirect-source-ssr">Redirect Source SSR</h1>
<Suspense>
<div>{JSON.stringify(query.data)}</div>
</Suspense>
</div>
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { createFileRoute } from '@tanstack/react-router'

export const Route = createFileRoute('/redirect-test-ssr/target')({
component: RouteComponent,
})

function RouteComponent() {
return (
<div>
<h1 data-testid="redirect-target-ssr">Redirect Target SSR</h1>
<p>Successfully redirected!</p>
</div>
)
}
12 changes: 12 additions & 0 deletions e2e/react-start/server-functions/tests/server-functions.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -477,3 +477,15 @@ test('redirect in server function on direct navigation', async ({ page }) => {
await expect(page.getByTestId('redirect-target')).toBeVisible()
expect(page.url()).toContain('/redirect-test/target')
})

test('redirect in server function called in query during SSR', async ({
page,
}) => {
// Test direct navigation to a route with a server function that redirects
// when called inside a query with ssr: true
await page.goto('/redirect-test-ssr')

// Should redirect to target page
await expect(page.getByTestId('redirect-target-ssr')).toBeVisible()
expect(page.url()).toContain('/redirect-test-ssr/target')
})
2 changes: 1 addition & 1 deletion e2e/solid-router/basic-solid-query-file-based/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"dependencies": {
"@tailwindcss/postcss": "^4.1.15",
"@tanstack/router-plugin": "workspace:^",
"@tanstack/solid-query": "^5.90.0",
"@tanstack/solid-query": "^5.90.9",
"@tanstack/solid-query-devtools": "^5.71.9",
"@tanstack/solid-router": "workspace:^",
"@tanstack/solid-router-devtools": "workspace:^",
Expand Down
2 changes: 1 addition & 1 deletion e2e/solid-router/basic-solid-query/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
},
"dependencies": {
"@tailwindcss/postcss": "^4.1.15",
"@tanstack/solid-query": "^5.90.0",
"@tanstack/solid-query": "^5.90.9",
"@tanstack/solid-query-devtools": "^5.71.9",
"@tanstack/solid-router": "workspace:^",
"@tanstack/solid-router-devtools": "workspace:^",
Expand Down
2 changes: 1 addition & 1 deletion e2e/solid-start/basic-solid-query/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"test:e2e": "rm -rf port*.txt; playwright test --project=chromium"
},
"dependencies": {
"@tanstack/solid-query": "^5.90.0",
"@tanstack/solid-query": "^5.90.9",
"@tanstack/solid-query-devtools": "^5.90.0",
"@tanstack/solid-router": "workspace:^",
"@tanstack/solid-router-devtools": "workspace:^",
Expand Down
2 changes: 1 addition & 1 deletion e2e/solid-start/query-integration/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"test:e2e": "rm -rf port*.txt; playwright test --project=chromium"
},
"dependencies": {
"@tanstack/solid-query": "^5.90.0",
"@tanstack/solid-query": "^5.90.9",
"@tanstack/solid-query-devtools": "^5.90.0",
"@tanstack/solid-router": "workspace:^",
"@tanstack/solid-router-devtools": "workspace:^",
Expand Down
2 changes: 1 addition & 1 deletion e2e/solid-start/server-functions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"test:e2e": "rm -rf port*.txt; playwright test --project=chromium"
},
"dependencies": {
"@tanstack/solid-query": "^5.90.6",
"@tanstack/solid-query": "^5.90.9",
"@tanstack/solid-router": "workspace:^",
"@tanstack/solid-router-devtools": "workspace:^",
"@tanstack/solid-router-ssr-query": "workspace:^",
Expand Down
Loading
Loading