Skip to content

Commit 13a2191

Browse files
committed
test(solid-start): update server-functions e2e to match react
1 parent b5c96d4 commit 13a2191

File tree

18 files changed

+1189
-2
lines changed

18 files changed

+1189
-2
lines changed

e2e/react-start/server-functions/src/router.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { createRouter } from '@tanstack/react-router'
2+
import { QueryClient } from '@tanstack/react-query'
3+
import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'
24
import { routeTree } from './routeTree.gen'
35
import { DefaultCatchBoundary } from './components/DefaultCatchBoundary'
46
import { NotFound } from './components/NotFound'
5-
import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query'
6-
import { QueryClient } from '@tanstack/react-query'
77

88
export function getRouter() {
99
const queryClient = new QueryClient()

e2e/solid-start/server-functions/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
"test:e2e": "rm -rf port*.txt; playwright test --project=chromium"
1212
},
1313
"dependencies": {
14+
"@tanstack/solid-query": "^5.90.6",
1415
"@tanstack/solid-router": "workspace:^",
1516
"@tanstack/solid-router-devtools": "workspace:^",
17+
"@tanstack/solid-router-ssr-query": "workspace:^",
1618
"@tanstack/solid-start": "workspace:^",
1719
"js-cookie": "^3.0.5",
1820
"redaxios": "^0.5.1",

e2e/solid-start/server-functions/src/routeTree.gen.ts

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,16 @@ import { Route as DeadCodePreserveRouteImport } from './routes/dead-code-preserv
2222
import { Route as ConsistentRouteImport } from './routes/consistent'
2323
import { Route as AbortSignalRouteImport } from './routes/abort-signal'
2424
import { Route as IndexRouteImport } from './routes/index'
25+
import { Route as PrimitivesIndexRouteImport } from './routes/primitives/index'
26+
import { Route as MiddlewareIndexRouteImport } from './routes/middleware/index'
27+
import { Route as FormdataRedirectIndexRouteImport } from './routes/formdata-redirect/index'
28+
import { Route as FactoryIndexRouteImport } from './routes/factory/index'
2529
import { Route as CookiesIndexRouteImport } from './routes/cookies/index'
30+
import { Route as MiddlewareSendServerFnRouteImport } from './routes/middleware/send-serverFn'
31+
import { Route as MiddlewareRequestMiddlewareRouteImport } from './routes/middleware/request-middleware'
32+
import { Route as MiddlewareClientMiddlewareRouterRouteImport } from './routes/middleware/client-middleware-router'
2633
import { Route as CookiesSetRouteImport } from './routes/cookies/set'
34+
import { Route as FormdataRedirectTargetNameRouteImport } from './routes/formdata-redirect/target.$name'
2735

2836
const SubmitPostFormdataRoute = SubmitPostFormdataRouteImport.update({
2937
id: '/submit-post-formdata',
@@ -90,16 +98,59 @@ const IndexRoute = IndexRouteImport.update({
9098
path: '/',
9199
getParentRoute: () => rootRouteImport,
92100
} as any)
101+
const PrimitivesIndexRoute = PrimitivesIndexRouteImport.update({
102+
id: '/primitives/',
103+
path: '/primitives/',
104+
getParentRoute: () => rootRouteImport,
105+
} as any)
106+
const MiddlewareIndexRoute = MiddlewareIndexRouteImport.update({
107+
id: '/middleware/',
108+
path: '/middleware/',
109+
getParentRoute: () => rootRouteImport,
110+
} as any)
111+
const FormdataRedirectIndexRoute = FormdataRedirectIndexRouteImport.update({
112+
id: '/formdata-redirect/',
113+
path: '/formdata-redirect/',
114+
getParentRoute: () => rootRouteImport,
115+
} as any)
116+
const FactoryIndexRoute = FactoryIndexRouteImport.update({
117+
id: '/factory/',
118+
path: '/factory/',
119+
getParentRoute: () => rootRouteImport,
120+
} as any)
93121
const CookiesIndexRoute = CookiesIndexRouteImport.update({
94122
id: '/cookies/',
95123
path: '/cookies/',
96124
getParentRoute: () => rootRouteImport,
97125
} as any)
126+
const MiddlewareSendServerFnRoute = MiddlewareSendServerFnRouteImport.update({
127+
id: '/middleware/send-serverFn',
128+
path: '/middleware/send-serverFn',
129+
getParentRoute: () => rootRouteImport,
130+
} as any)
131+
const MiddlewareRequestMiddlewareRoute =
132+
MiddlewareRequestMiddlewareRouteImport.update({
133+
id: '/middleware/request-middleware',
134+
path: '/middleware/request-middleware',
135+
getParentRoute: () => rootRouteImport,
136+
} as any)
137+
const MiddlewareClientMiddlewareRouterRoute =
138+
MiddlewareClientMiddlewareRouterRouteImport.update({
139+
id: '/middleware/client-middleware-router',
140+
path: '/middleware/client-middleware-router',
141+
getParentRoute: () => rootRouteImport,
142+
} as any)
98143
const CookiesSetRoute = CookiesSetRouteImport.update({
99144
id: '/cookies/set',
100145
path: '/cookies/set',
101146
getParentRoute: () => rootRouteImport,
102147
} as any)
148+
const FormdataRedirectTargetNameRoute =
149+
FormdataRedirectTargetNameRouteImport.update({
150+
id: '/formdata-redirect/target/$name',
151+
path: '/formdata-redirect/target/$name',
152+
getParentRoute: () => rootRouteImport,
153+
} as any)
103154

104155
export interface FileRoutesByFullPath {
105156
'/': typeof IndexRoute
@@ -116,7 +167,15 @@ export interface FileRoutesByFullPath {
116167
'/status': typeof StatusRoute
117168
'/submit-post-formdata': typeof SubmitPostFormdataRoute
118169
'/cookies/set': typeof CookiesSetRoute
170+
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
171+
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
172+
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
119173
'/cookies': typeof CookiesIndexRoute
174+
'/factory': typeof FactoryIndexRoute
175+
'/formdata-redirect': typeof FormdataRedirectIndexRoute
176+
'/middleware': typeof MiddlewareIndexRoute
177+
'/primitives': typeof PrimitivesIndexRoute
178+
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
120179
}
121180
export interface FileRoutesByTo {
122181
'/': typeof IndexRoute
@@ -133,7 +192,15 @@ export interface FileRoutesByTo {
133192
'/status': typeof StatusRoute
134193
'/submit-post-formdata': typeof SubmitPostFormdataRoute
135194
'/cookies/set': typeof CookiesSetRoute
195+
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
196+
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
197+
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
136198
'/cookies': typeof CookiesIndexRoute
199+
'/factory': typeof FactoryIndexRoute
200+
'/formdata-redirect': typeof FormdataRedirectIndexRoute
201+
'/middleware': typeof MiddlewareIndexRoute
202+
'/primitives': typeof PrimitivesIndexRoute
203+
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
137204
}
138205
export interface FileRoutesById {
139206
__root__: typeof rootRouteImport
@@ -151,7 +218,15 @@ export interface FileRoutesById {
151218
'/status': typeof StatusRoute
152219
'/submit-post-formdata': typeof SubmitPostFormdataRoute
153220
'/cookies/set': typeof CookiesSetRoute
221+
'/middleware/client-middleware-router': typeof MiddlewareClientMiddlewareRouterRoute
222+
'/middleware/request-middleware': typeof MiddlewareRequestMiddlewareRoute
223+
'/middleware/send-serverFn': typeof MiddlewareSendServerFnRoute
154224
'/cookies/': typeof CookiesIndexRoute
225+
'/factory/': typeof FactoryIndexRoute
226+
'/formdata-redirect/': typeof FormdataRedirectIndexRoute
227+
'/middleware/': typeof MiddlewareIndexRoute
228+
'/primitives/': typeof PrimitivesIndexRoute
229+
'/formdata-redirect/target/$name': typeof FormdataRedirectTargetNameRoute
155230
}
156231
export interface FileRouteTypes {
157232
fileRoutesByFullPath: FileRoutesByFullPath
@@ -170,7 +245,15 @@ export interface FileRouteTypes {
170245
| '/status'
171246
| '/submit-post-formdata'
172247
| '/cookies/set'
248+
| '/middleware/client-middleware-router'
249+
| '/middleware/request-middleware'
250+
| '/middleware/send-serverFn'
173251
| '/cookies'
252+
| '/factory'
253+
| '/formdata-redirect'
254+
| '/middleware'
255+
| '/primitives'
256+
| '/formdata-redirect/target/$name'
174257
fileRoutesByTo: FileRoutesByTo
175258
to:
176259
| '/'
@@ -187,7 +270,15 @@ export interface FileRouteTypes {
187270
| '/status'
188271
| '/submit-post-formdata'
189272
| '/cookies/set'
273+
| '/middleware/client-middleware-router'
274+
| '/middleware/request-middleware'
275+
| '/middleware/send-serverFn'
190276
| '/cookies'
277+
| '/factory'
278+
| '/formdata-redirect'
279+
| '/middleware'
280+
| '/primitives'
281+
| '/formdata-redirect/target/$name'
191282
id:
192283
| '__root__'
193284
| '/'
@@ -204,7 +295,15 @@ export interface FileRouteTypes {
204295
| '/status'
205296
| '/submit-post-formdata'
206297
| '/cookies/set'
298+
| '/middleware/client-middleware-router'
299+
| '/middleware/request-middleware'
300+
| '/middleware/send-serverFn'
207301
| '/cookies/'
302+
| '/factory/'
303+
| '/formdata-redirect/'
304+
| '/middleware/'
305+
| '/primitives/'
306+
| '/formdata-redirect/target/$name'
208307
fileRoutesById: FileRoutesById
209308
}
210309
export interface RootRouteChildren {
@@ -222,7 +321,15 @@ export interface RootRouteChildren {
222321
StatusRoute: typeof StatusRoute
223322
SubmitPostFormdataRoute: typeof SubmitPostFormdataRoute
224323
CookiesSetRoute: typeof CookiesSetRoute
324+
MiddlewareClientMiddlewareRouterRoute: typeof MiddlewareClientMiddlewareRouterRoute
325+
MiddlewareRequestMiddlewareRoute: typeof MiddlewareRequestMiddlewareRoute
326+
MiddlewareSendServerFnRoute: typeof MiddlewareSendServerFnRoute
225327
CookiesIndexRoute: typeof CookiesIndexRoute
328+
FactoryIndexRoute: typeof FactoryIndexRoute
329+
FormdataRedirectIndexRoute: typeof FormdataRedirectIndexRoute
330+
MiddlewareIndexRoute: typeof MiddlewareIndexRoute
331+
PrimitivesIndexRoute: typeof PrimitivesIndexRoute
332+
FormdataRedirectTargetNameRoute: typeof FormdataRedirectTargetNameRoute
226333
}
227334

228335
declare module '@tanstack/solid-router' {
@@ -318,20 +425,76 @@ declare module '@tanstack/solid-router' {
318425
preLoaderRoute: typeof IndexRouteImport
319426
parentRoute: typeof rootRouteImport
320427
}
428+
'/primitives/': {
429+
id: '/primitives/'
430+
path: '/primitives'
431+
fullPath: '/primitives'
432+
preLoaderRoute: typeof PrimitivesIndexRouteImport
433+
parentRoute: typeof rootRouteImport
434+
}
435+
'/middleware/': {
436+
id: '/middleware/'
437+
path: '/middleware'
438+
fullPath: '/middleware'
439+
preLoaderRoute: typeof MiddlewareIndexRouteImport
440+
parentRoute: typeof rootRouteImport
441+
}
442+
'/formdata-redirect/': {
443+
id: '/formdata-redirect/'
444+
path: '/formdata-redirect'
445+
fullPath: '/formdata-redirect'
446+
preLoaderRoute: typeof FormdataRedirectIndexRouteImport
447+
parentRoute: typeof rootRouteImport
448+
}
449+
'/factory/': {
450+
id: '/factory/'
451+
path: '/factory'
452+
fullPath: '/factory'
453+
preLoaderRoute: typeof FactoryIndexRouteImport
454+
parentRoute: typeof rootRouteImport
455+
}
321456
'/cookies/': {
322457
id: '/cookies/'
323458
path: '/cookies'
324459
fullPath: '/cookies'
325460
preLoaderRoute: typeof CookiesIndexRouteImport
326461
parentRoute: typeof rootRouteImport
327462
}
463+
'/middleware/send-serverFn': {
464+
id: '/middleware/send-serverFn'
465+
path: '/middleware/send-serverFn'
466+
fullPath: '/middleware/send-serverFn'
467+
preLoaderRoute: typeof MiddlewareSendServerFnRouteImport
468+
parentRoute: typeof rootRouteImport
469+
}
470+
'/middleware/request-middleware': {
471+
id: '/middleware/request-middleware'
472+
path: '/middleware/request-middleware'
473+
fullPath: '/middleware/request-middleware'
474+
preLoaderRoute: typeof MiddlewareRequestMiddlewareRouteImport
475+
parentRoute: typeof rootRouteImport
476+
}
477+
'/middleware/client-middleware-router': {
478+
id: '/middleware/client-middleware-router'
479+
path: '/middleware/client-middleware-router'
480+
fullPath: '/middleware/client-middleware-router'
481+
preLoaderRoute: typeof MiddlewareClientMiddlewareRouterRouteImport
482+
parentRoute: typeof rootRouteImport
483+
}
328484
'/cookies/set': {
329485
id: '/cookies/set'
330486
path: '/cookies/set'
331487
fullPath: '/cookies/set'
332488
preLoaderRoute: typeof CookiesSetRouteImport
333489
parentRoute: typeof rootRouteImport
334490
}
491+
'/formdata-redirect/target/$name': {
492+
id: '/formdata-redirect/target/$name'
493+
path: '/formdata-redirect/target/$name'
494+
fullPath: '/formdata-redirect/target/$name'
495+
preLoaderRoute: typeof FormdataRedirectTargetNameRouteImport
496+
parentRoute: typeof rootRouteImport
497+
}
335498
}
336499
}
337500

@@ -350,7 +513,15 @@ const rootRouteChildren: RootRouteChildren = {
350513
StatusRoute: StatusRoute,
351514
SubmitPostFormdataRoute: SubmitPostFormdataRoute,
352515
CookiesSetRoute: CookiesSetRoute,
516+
MiddlewareClientMiddlewareRouterRoute: MiddlewareClientMiddlewareRouterRoute,
517+
MiddlewareRequestMiddlewareRoute: MiddlewareRequestMiddlewareRoute,
518+
MiddlewareSendServerFnRoute: MiddlewareSendServerFnRoute,
353519
CookiesIndexRoute: CookiesIndexRoute,
520+
FactoryIndexRoute: FactoryIndexRoute,
521+
FormdataRedirectIndexRoute: FormdataRedirectIndexRoute,
522+
MiddlewareIndexRoute: MiddlewareIndexRoute,
523+
PrimitivesIndexRoute: PrimitivesIndexRoute,
524+
FormdataRedirectTargetNameRoute: FormdataRedirectTargetNameRoute,
354525
}
355526
export const routeTree = rootRouteImport
356527
._addFileChildren(rootRouteChildren)

e2e/solid-start/server-functions/src/router.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
import { createRouter } from '@tanstack/solid-router'
2+
import { setupRouterSsrQueryIntegration } from '@tanstack/solid-router-ssr-query'
3+
import { QueryClient } from '@tanstack/solid-query'
24
import { routeTree } from './routeTree.gen'
35
import { DefaultCatchBoundary } from './components/DefaultCatchBoundary'
46
import { NotFound } from './components/NotFound'
57

68
export function getRouter() {
9+
const queryClient = new QueryClient()
710
const router = createRouter({
811
routeTree,
912
defaultPreload: 'intent',
1013
defaultErrorComponent: DefaultCatchBoundary,
1114
defaultNotFoundComponent: () => <NotFound />,
1215
scrollRestoration: true,
16+
context: {
17+
foo: {
18+
bar: 'baz',
19+
},
20+
},
1321
})
1422

23+
setupRouterSsrQueryIntegration({ router, queryClient })
24+
1525
return router
1626
}
1727

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { createMiddleware } from '@tanstack/solid-start'
2+
import { createFooServerFn } from './createFooServerFn'
3+
4+
const barMiddleware = createMiddleware({ type: 'function' }).server(
5+
({ next }) => {
6+
console.log('Bar middleware triggered')
7+
return next({
8+
context: { bar: 'bar' } as const,
9+
})
10+
},
11+
)
12+
13+
export const createBarServerFn = createFooServerFn().middleware([barMiddleware])
14+
15+
export const barFnInsideFactoryFile = createBarServerFn().handler(
16+
({ context }) => {
17+
return {
18+
name: 'barFnInsideFactoryFile',
19+
context,
20+
}
21+
},
22+
)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export function createFakeFn() {
2+
return {
3+
handler: (cb: () => Promise<any>) => cb,
4+
}
5+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { createMiddleware, createServerFn } from '@tanstack/solid-start'
2+
3+
const fooMiddleware = createMiddleware({ type: 'function' }).server(
4+
({ next }) => {
5+
console.log('Foo middleware triggered')
6+
return next({
7+
context: { foo: 'foo' } as const,
8+
})
9+
},
10+
)
11+
12+
export const createFooServerFn = createServerFn().middleware([fooMiddleware])
13+
14+
export const fooFnInsideFactoryFile = createFooServerFn().handler(
15+
async ({ context, method }) => {
16+
console.log('fooFnInsideFactoryFile handler triggered', method)
17+
return {
18+
name: 'fooFnInsideFactoryFile',
19+
context,
20+
}
21+
},
22+
)

0 commit comments

Comments
 (0)