diff --git a/packages/solid-router/src/Match.tsx b/packages/solid-router/src/Match.tsx
index 9ac0e485ea3..588c771b531 100644
--- a/packages/solid-router/src/Match.tsx
+++ b/packages/solid-router/src/Match.tsx
@@ -375,22 +375,6 @@ export const MatchInner = (): any => {
{(_) => {
- if (isServer ?? router.isServer) {
- const RouteErrorComponent =
- (route().options.errorComponent ??
- router.options.defaultErrorComponent) ||
- ErrorComponent
-
- return (
-
- )
- }
-
throw currentMatch().error
}}
diff --git a/packages/solid-router/tests/server/errorComponent.test.tsx b/packages/solid-router/tests/server/errorComponent.test.tsx
index f342aaae0d9..21ff5fa6cc7 100644
--- a/packages/solid-router/tests/server/errorComponent.test.tsx
+++ b/packages/solid-router/tests/server/errorComponent.test.tsx
@@ -1,4 +1,4 @@
-import { describe, expect, it } from 'vitest'
+import { describe, expect, it, vi } from 'vitest'
import { renderToStringAsync } from 'solid-js/web'
import {
RouterProvider,
@@ -11,6 +11,7 @@ import {
describe('errorComponent (server)', () => {
it('renders the route error component when a loader throws during SSR', async () => {
const rootRoute = createRootRoute()
+ const onCatch = vi.fn()
const indexRoute = createRoute({
getParentRoute: () => rootRoute,
@@ -19,8 +20,11 @@ describe('errorComponent (server)', () => {
throw new Error('loader boom')
},
component: () =>
Index route
,
- errorComponent: ({ error }) => (
- Route error: {error.message}
+ onCatch,
+ errorComponent: ({ error, reset }) => (
+
+ Route error: {error.message} reset:{typeof reset}
+
),
})
@@ -38,10 +42,13 @@ describe('errorComponent (server)', () => {
const html = await renderToStringAsync(() => (
))
+ const normalizedHtml = html.replace(//g, '')
expect(router.state.statusCode).toBe(500)
+ expect(onCatch).toHaveBeenCalledTimes(1)
expect(html).toContain('data-testid="error-component"')
expect(html).toContain('loader boom')
+ expect(normalizedHtml).toContain('reset:function')
expect(html).not.toContain('Index route')
})
})