summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/poor-steaks-confess.md5
-rw-r--r--packages/integrations/vercel/src/serverless/adapter.ts1
-rw-r--r--packages/integrations/vercel/test/fixtures/redirects-serverless/astro.config.mjs7
-rw-r--r--packages/integrations/vercel/test/fixtures/redirects-serverless/package.json9
-rw-r--r--packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/index.astro8
-rw-r--r--packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/subpage.astro0
-rw-r--r--packages/integrations/vercel/test/redirects-serverless.test.js28
-rw-r--r--pnpm-lock.yaml9
8 files changed, 67 insertions, 0 deletions
diff --git a/.changeset/poor-steaks-confess.md b/.changeset/poor-steaks-confess.md
new file mode 100644
index 000000000..254375c6a
--- /dev/null
+++ b/.changeset/poor-steaks-confess.md
@@ -0,0 +1,5 @@
+---
+'@astrojs/vercel': patch
+---
+
+Prevents the Vercel serverless adapter from generating static redirect pages in hybrid mode
diff --git a/packages/integrations/vercel/src/serverless/adapter.ts b/packages/integrations/vercel/src/serverless/adapter.ts
index e7cdebfb9..ea7cd7e53 100644
--- a/packages/integrations/vercel/src/serverless/adapter.ts
+++ b/packages/integrations/vercel/src/serverless/adapter.ts
@@ -175,6 +175,7 @@ export default function vercelServerless({
serverEntry: 'entry.mjs',
client: new URL('./static/', outDir),
server: new URL('./dist/', config.root),
+ redirects: false,
},
vite: {
...getSpeedInsightsViteConfig(speedInsights?.enabled || analytics),
diff --git a/packages/integrations/vercel/test/fixtures/redirects-serverless/astro.config.mjs b/packages/integrations/vercel/test/fixtures/redirects-serverless/astro.config.mjs
new file mode 100644
index 000000000..37b08d2d7
--- /dev/null
+++ b/packages/integrations/vercel/test/fixtures/redirects-serverless/astro.config.mjs
@@ -0,0 +1,7 @@
+import { defineConfig } from 'astro/config';
+import vercel from '@astrojs/vercel/serverless';
+
+export default defineConfig({
+ output: 'hybrid',
+ adapter: vercel(),
+});
diff --git a/packages/integrations/vercel/test/fixtures/redirects-serverless/package.json b/packages/integrations/vercel/test/fixtures/redirects-serverless/package.json
new file mode 100644
index 000000000..c8de30d66
--- /dev/null
+++ b/packages/integrations/vercel/test/fixtures/redirects-serverless/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@test/astro-vercel-redirects-serverless",
+ "version": "0.0.0",
+ "private": true,
+ "dependencies": {
+ "@astrojs/vercel": "workspace:*",
+ "astro": "workspace:*"
+ }
+}
diff --git a/packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/index.astro b/packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/index.astro
new file mode 100644
index 000000000..9c077e2a3
--- /dev/null
+++ b/packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/index.astro
@@ -0,0 +1,8 @@
+<html>
+ <head>
+ <title>Testing</title>
+ </head>
+ <body>
+ <h1>Testing</h1>
+ </body>
+</html>
diff --git a/packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/subpage.astro b/packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/subpage.astro
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/packages/integrations/vercel/test/fixtures/redirects-serverless/src/pages/subpage.astro
diff --git a/packages/integrations/vercel/test/redirects-serverless.test.js b/packages/integrations/vercel/test/redirects-serverless.test.js
new file mode 100644
index 000000000..f3a1a5daa
--- /dev/null
+++ b/packages/integrations/vercel/test/redirects-serverless.test.js
@@ -0,0 +1,28 @@
+import { expect } from 'chai';
+import { loadFixture } from './test-utils.js';
+
+describe('Redirects Serverless', () => {
+ /** @type {import('astro/test/test-utils.js').Fixture} */
+ let fixture;
+
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/redirects-serverless/',
+ redirects: {
+ '/one': '/',
+ '/other': '/subpage',
+ },
+ });
+ await fixture.build();
+ });
+
+ it('does not create .html files', async () => {
+ let hasErrored = false;
+ try {
+ await fixture.readFile('../.vercel/output/static/other/index.html');
+ } catch {
+ hasErrored = true;
+ }
+ expect(hasErrored).to.equal(true, 'this file should not exist');
+ });
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bb4bbc547..1940d296a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4659,6 +4659,15 @@ importers:
specifier: workspace:*
version: link:../../../../../astro
+ packages/integrations/vercel/test/fixtures/redirects-serverless:
+ dependencies:
+ '@astrojs/vercel':
+ specifier: workspace:*
+ version: link:../../..
+ astro:
+ specifier: workspace:*
+ version: link:../../../../../astro
+
packages/integrations/vercel/test/fixtures/serverless-prerender:
dependencies:
'@astrojs/vercel':