diff --git a/packages/nuxt/src/pages/runtime/validate.ts b/packages/nuxt/src/pages/runtime/validate.ts index 14d5a8aedd..e66421d9a3 100644 --- a/packages/nuxt/src/pages/runtime/validate.ts +++ b/packages/nuxt/src/pages/runtime/validate.ts @@ -1,12 +1,11 @@ -import { createError, defineNuxtRouteMiddleware } from '#app' +import { defineNuxtRouteMiddleware } from '#app' export default defineNuxtRouteMiddleware(async (to) => { if (!to.meta?.validate) { return } const result = await Promise.resolve(to.meta.validate(to)) - if (typeof result === 'boolean') { - return result + if (result === true) { + return } - - return createError(result) + return result }) diff --git a/test/basic.test.ts b/test/basic.test.ts index 81ba31c996..8752d1fc43 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -90,6 +90,9 @@ describe('pages', () => { expect(html).toContain('[...slug].vue') expect(html).toContain('404 at not-found') + // Middleware still runs after validation: https://github.com/nuxt/framework/issues/9701 + expect(html).toContain('Middleware ran: true') + await expectNoClientErrors('/not-found') }) diff --git a/test/fixtures/basic/pages/[...slug].vue b/test/fixtures/basic/pages/[...slug].vue index a805ed7aea..8ed645e31a 100644 --- a/test/fixtures/basic/pages/[...slug].vue +++ b/test/fixtures/basic/pages/[...slug].vue @@ -2,11 +2,13 @@
[...slug].vue
404 at {{ $route.params.slug[0] }}
+
Middleware ran: {{ !!($route.meta.override as any)?.includes('extended middleware') }}