diff --git a/apps/www/lib/rewrites.js b/apps/www/lib/rewrites.js index 6c7aba2f384..6cfedc4dbc5 100644 --- a/apps/www/lib/rewrites.js +++ b/apps/www/lib/rewrites.js @@ -55,6 +55,14 @@ const rewrites = [ source: '/evals/:path*', destination: 'https://supabase-evals.vercel.app/:path*', }, + { + source: '/migrate/instantdb', + destination: 'https://instantdb-to-supabase.vercel.app/migrate/instantdb', + }, + { + source: '/migrate/instantdb/:path*', + destination: 'https://instantdb-to-supabase.vercel.app/migrate/instantdb/:path*', + }, { source: '/new-docs', diff --git a/apps/www/next.config.test.ts b/apps/www/next.config.test.ts index 083c7a260d5..46d72ed03bb 100644 --- a/apps/www/next.config.test.ts +++ b/apps/www/next.config.test.ts @@ -62,6 +62,25 @@ describe('next.config.mjs', () => { ).toBeLessThan(redirects.findIndex((redirect) => redirect.source === '/ui/:path*')) }) + it('proxies the InstantDB migration app with its basePath prefix intact', async () => { + const { default: config } = (await import('./next.config.mjs')) as { default: NextConfig } + const rewrites = await config.rewrites?.() + const afterFiles = (rewrites && 'afterFiles' in rewrites && rewrites.afterFiles) || [] + + expect(afterFiles).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + source: '/migrate/instantdb', + destination: 'https://instantdb-to-supabase.vercel.app/migrate/instantdb', + }), + expect.objectContaining({ + source: '/migrate/instantdb/:path*', + destination: 'https://instantdb-to-supabase.vercel.app/migrate/instantdb/:path*', + }), + ]) + ) + }) + it('routes unmatched markdown-negotiated paths to the md-404 handler via fallback rewrites', async () => { const { default: config } = (await import('./next.config.mjs')) as { default: NextConfig } const rewrites = await config.rewrites?.()