aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/netlify/test')
-rw-r--r--packages/integrations/netlify/test/edge-functions/deps.ts11
-rw-r--r--packages/integrations/netlify/test/edge-functions/dynamic-import.test.ts29
-rw-r--r--packages/integrations/netlify/test/edge-functions/edge-basic.test.ts36
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs9
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/dynimport/package.json9
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/dynimport/prod.js11
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/components/Thing.astro4
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/pages/index.astro11
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs12
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json10
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro11
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/three.md7
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/two.astro6
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/prerender/astro.config.mjs16
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/prerender/package.json9
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/prerender/src/pages/index.astro12
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs9
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/package.json9
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/public/styles.css3
-rw-r--r--packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/src/pages/[...all].astro9
-rw-r--r--packages/integrations/netlify/test/edge-functions/prerender.test.ts86
-rw-r--r--packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts19
-rw-r--r--packages/integrations/netlify/test/edge-functions/test-utils.ts50
-rw-r--r--packages/integrations/netlify/test/functions/edge-middleware.test.js1
-rw-r--r--packages/integrations/netlify/test/functions/prerender.test.js17
-rw-r--r--packages/integrations/netlify/test/functions/redirects.test.js8
-rw-r--r--packages/integrations/netlify/test/functions/redirects.test.js.snap1
-rw-r--r--packages/integrations/netlify/test/functions/split-support.test.js26
-rw-r--r--packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs3
29 files changed, 32 insertions, 412 deletions
diff --git a/packages/integrations/netlify/test/edge-functions/deps.ts b/packages/integrations/netlify/test/edge-functions/deps.ts
deleted file mode 100644
index 6d729970d..000000000
--- a/packages/integrations/netlify/test/edge-functions/deps.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-// @ts-nocheck
-export { fromFileUrl } from 'https://deno.land/std@0.110.0/path/mod.ts';
-export {
- assertEquals,
- assert,
- assertExists,
-} from 'https://deno.land/std@0.132.0/testing/asserts.ts';
-export { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.35-alpha/deno-dom-wasm.ts';
-export * from 'https://deno.land/std@0.142.0/streams/conversion.ts';
-export * as cheerio from 'https://cdn.skypack.dev/cheerio?dts';
-export * as fs from 'https://deno.land/std/fs/mod.ts';
diff --git a/packages/integrations/netlify/test/edge-functions/dynamic-import.test.ts b/packages/integrations/netlify/test/edge-functions/dynamic-import.test.ts
deleted file mode 100644
index 89a640b0b..000000000
--- a/packages/integrations/netlify/test/edge-functions/dynamic-import.test.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { loadFixture } from './test-utils.ts';
-import { assertEquals, assert, DOMParser } from './deps.ts';
-
-Deno.test({
- name: 'Dynamic imports',
- permissions: 'inherit',
- async fn() {
- const { runApp, runBuild } = await loadFixture('./fixtures/dynimport/');
- await runBuild();
- const stop = await runApp('./fixtures/dynimport/prod.js');
-
- try {
- const response = await fetch('http://127.0.0.1:8085/');
- assertEquals(response.status, 200);
- const html = await response.text();
-
- assert(html, 'got some html');
- const doc = new DOMParser().parseFromString(html, `text/html`);
- if (doc) {
- const div = doc.querySelector('#thing');
- assert(div, 'div exists');
- }
- } catch (err) {
- console.error(err);
- } finally {
- await stop();
- }
- },
-});
diff --git a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts
deleted file mode 100644
index 699ab0014..000000000
--- a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { loadFixture } from './test-utils.ts';
-import { assertEquals, assert, DOMParser } from './deps.ts';
-
-Deno.env.set('SECRET_STUFF', 'secret');
-
-Deno.test({
- ignore: true,
- name: 'Edge Basics',
- permissions: 'inherit',
- async fn(t) {
- const fixture = loadFixture('./fixtures/edge-basic/');
- await t.step('Run the build', async () => {
- await fixture.runBuild();
- });
- await t.step('Should correctly render the response', async () => {
- const { default: handler } = await import(
- './fixtures/edge-basic/.netlify/edge-functions/entry.js'
- );
- const response = await handler(new Request('http://example.com/'));
- assertEquals(response.status, 200);
- const html = await response.text();
- assert(html, 'got some html');
-
- const doc = new DOMParser().parseFromString(html, `text/html`)!;
- const div = doc.querySelector('#react');
- assert(div, 'div exists');
-
- const envDiv = doc.querySelector('#env');
- assertEquals(envDiv?.innerText, 'secret');
- });
-
- await t.step('Clean up', async () => {
- await fixture.cleanup();
- });
- },
-});
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs
deleted file mode 100644
index cd758352b..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/astro.config.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineConfig } from 'astro/config';
-import { netlifyEdgeFunctions } from '@astrojs/netlify';
-
-export default defineConfig({
- adapter: netlifyEdgeFunctions({
- dist: new URL('./dist/', import.meta.url),
- }),
- output: 'server',
-})
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/package.json b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/package.json
deleted file mode 100644
index 201a243d0..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/netlify-edge-astro-dynimport",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "astro": "workspace:*",
- "@astrojs/netlify": "workspace:*"
- }
-}
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/prod.js b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/prod.js
deleted file mode 100644
index 3e7d6e64d..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/prod.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import handler from './.netlify/edge-functions/entry.js';
-import { Server } from 'https://deno.land/std@0.132.0/http/server.ts';
-
-const _server = new Server({
- port: 8085,
- hostname: '0.0.0.0',
- handler,
-});
-
-_server.listenAndServe();
-console.error(`Server running on port 8085`);
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/components/Thing.astro b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/components/Thing.astro
deleted file mode 100644
index 8d8ef929a..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/components/Thing.astro
+++ /dev/null
@@ -1,4 +0,0 @@
----
-
----
-<div id="thing">testing</div>
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/pages/index.astro b/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/pages/index.astro
deleted file mode 100644
index 852cb6201..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/dynimport/src/pages/index.astro
+++ /dev/null
@@ -1,11 +0,0 @@
----
-const { default: Thing } = await import('../components/Thing.astro');
----
-<html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <Thing />
- </body>
-</html>
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs
deleted file mode 100644
index ac15ad4e9..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-import { defineConfig } from 'astro/config';
-import { netlifyEdgeFunctions } from '@astrojs/netlify';
-
-// test env var
-process.env.SECRET_STUFF = 'secret'
-
-export default defineConfig({
- adapter: netlifyEdgeFunctions({
- dist: new URL('./dist/', import.meta.url),
- }),
- output: 'server',
-})
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json
deleted file mode 100644
index 16ff30088..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "name": "@test/netlify-edge-astro-basic",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "astro": "workspace:*",
- "@astrojs/react": "workspace:*",
- "@astrojs/netlify": "workspace:*"
- }
-}
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro
deleted file mode 100644
index a480cf46c..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head><title>Testing</title></head>
-<body>
- <h1>Test page</h1>
- <h2>Links</h2>
- <ul>
- <li><a href="/two/">Two</a></li>
- </ul>
- <div id="env">{import.meta.env.SECRET_STUFF}</div>
-</body>
-</html>
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/three.md b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/three.md
deleted file mode 100644
index b588a6adc..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/three.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Hey there!
----
-
-# {frontmatter.title}!
-
-It's a markdown file!
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/two.astro b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/two.astro
deleted file mode 100644
index b5a031be3..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/two.astro
+++ /dev/null
@@ -1,6 +0,0 @@
-<html>
-<head><title>Page Two</title></head>
-<body>
- <h1>Page two</h1>
-</body>
-</html>
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/prerender/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/prerender/astro.config.mjs
deleted file mode 100644
index d049599e5..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/prerender/astro.config.mjs
+++ /dev/null
@@ -1,16 +0,0 @@
-import { defineConfig } from "astro/config";
-import { netlifyEdgeFunctions } from "@astrojs/netlify";
-
-const isHybridMode = process.env.PRERENDER === "false";
-
-/** @type {import('astro').AstroConfig} */
-const partialConfig = {
- output: isHybridMode ? "hybrid" : "server",
-};
-
-export default defineConfig({
- adapter: netlifyEdgeFunctions({
- dist: new URL("./dist/", import.meta.url),
- }),
- ...partialConfig,
-});
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/prerender/package.json b/packages/integrations/netlify/test/edge-functions/fixtures/prerender/package.json
deleted file mode 100644
index a080cc213..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/prerender/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-netlify-prerender",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/netlify": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/prerender/src/pages/index.astro b/packages/integrations/netlify/test/edge-functions/fixtures/prerender/src/pages/index.astro
deleted file mode 100644
index b6b833e53..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/prerender/src/pages/index.astro
+++ /dev/null
@@ -1,12 +0,0 @@
----
-export const prerender = import.meta.env.PRERENDER;
----
-
-<html>
- <head>
- <title>testing</title>
- </head>
- <body>
- <h1>testing</h1>
- </body>
-</html>
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs b/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs
deleted file mode 100644
index cd758352b..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/astro.config.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineConfig } from 'astro/config';
-import { netlifyEdgeFunctions } from '@astrojs/netlify';
-
-export default defineConfig({
- adapter: netlifyEdgeFunctions({
- dist: new URL('./dist/', import.meta.url),
- }),
- output: 'server',
-})
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/package.json b/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/package.json
deleted file mode 100644
index 6e548c151..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/netlify-edge-root-dynamic",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "astro": "workspace:*",
- "@astrojs/netlify": "workspace:*"
- }
-}
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/public/styles.css b/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/public/styles.css
deleted file mode 100644
index eedeb9d0f..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/public/styles.css
+++ /dev/null
@@ -1,3 +0,0 @@
-body {
- background: blue;
-}
diff --git a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/src/pages/[...all].astro b/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/src/pages/[...all].astro
deleted file mode 100644
index b61f6fc44..000000000
--- a/packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic/src/pages/[...all].astro
+++ /dev/null
@@ -1,9 +0,0 @@
-<html>
-<head>
- <title>Testing</title>
- <link rel="stylesheet" href="/styles.css">
-</head>
-<body>
- <h1>Testing</h1>
-</body>
-</html>
diff --git a/packages/integrations/netlify/test/edge-functions/prerender.test.ts b/packages/integrations/netlify/test/edge-functions/prerender.test.ts
deleted file mode 100644
index 2c066b9b8..000000000
--- a/packages/integrations/netlify/test/edge-functions/prerender.test.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import { loadFixture } from './test-utils.ts';
-import { assertEquals, assertExists, cheerio, fs } from './deps.ts';
-
-Deno.test({
- name: 'Prerender',
- permissions: 'inherit',
- async fn(t) {
- const environmentVariables = {
- PRERENDER: 'true',
- };
- const { runBuild, cleanup } = loadFixture('./fixtures/prerender/', environmentVariables);
-
- await t.step('Run the build', async () => {
- await runBuild();
- });
-
- await t.step('Handler can process requests to non-existing routes', async () => {
- const { default: handler } = await import(
- './fixtures/prerender/.netlify/edge-functions/entry.js'
- );
- assertExists(handler);
- const response = await handler(new Request('http://example.com/index.html'));
- assertEquals(response.status, 404, "No response because this route doesn't exist");
- });
-
- await t.step('Prerendered route exists', async () => {
- let content: string | null = null;
- try {
- const path = new URL('./fixtures/prerender/dist/index.html', import.meta.url);
- content = Deno.readTextFileSync(path);
- } catch (e) {}
- assertExists(content);
- const $ = cheerio.load(content);
- assertEquals($('h1').text(), 'testing');
- });
-
- Deno.env.delete('PRERENDER');
- await cleanup();
- },
-});
-
-Deno.test({
- name: 'Hybrid rendering',
- permissions: 'inherit',
- async fn(t) {
- const environmentVariables = {
- PRERENDER: 'false',
- };
- const fixture = loadFixture('./fixtures/prerender/', environmentVariables);
- await t.step('Run the build', async () => {
- await fixture.runBuild();
- });
-
- const stop = await fixture.runApp('./fixtures/prerender/prod.js');
- await t.step('Can fetch server route', async () => {
- const { default: handler } = await import(
- './fixtures/prerender/.netlify/edge-functions/entry.js'
- );
- const response = await handler(new Request('http://example.com/'));
- assertEquals(response.status, 200);
-
- const html = await response.text();
- const $ = cheerio.load(html);
- assertEquals($('h1').text(), 'testing');
- });
- stop();
-
- await t.step('Handler can process requests to non-existing routes', async () => {
- const { default: handler } = await import(
- './fixtures/prerender/.netlify/edge-functions/entry.js'
- );
- const response = await handler(new Request('http://example.com/index.html'));
- assertEquals(response.status, 404, "No response because this route doesn't exist");
- });
-
- await t.step('Has no prerendered route', async () => {
- let prerenderedRouteExists = false;
- try {
- const path = new URL('./fixtures/prerender/dist/index.html', import.meta.url);
- prerenderedRouteExists = fs.existsSync(path);
- } catch (e) {}
- assertEquals(prerenderedRouteExists, false);
- });
- await fixture.cleanup();
- },
-});
diff --git a/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts b/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts
deleted file mode 100644
index 3fc2012c3..000000000
--- a/packages/integrations/netlify/test/edge-functions/root-dynamic.test.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { loadFixture } from './test-utils.ts';
-import { assertEquals } from './deps.ts';
-
-Deno.test({
- // TODO: debug why build cannot be found in "await import"
- ignore: true,
- name: 'Assets are preferred over HTML routes',
- async fn() {
- const fixture = loadFixture('./fixtures/root-dynamic/');
- await fixture.runBuild();
-
- const { default: handler } = await import(
- './fixtures/root-dynamic/.netlify/edge-functions/entry.js'
- );
- const response = await handler(new Request('http://example.com/styles.css'));
- assertEquals(response, undefined, 'No response because this is an asset');
- await fixture.cleanup();
- },
-});
diff --git a/packages/integrations/netlify/test/edge-functions/test-utils.ts b/packages/integrations/netlify/test/edge-functions/test-utils.ts
deleted file mode 100644
index ed6e4c20c..000000000
--- a/packages/integrations/netlify/test/edge-functions/test-utils.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { fromFileUrl, readableStreamFromReader } from './deps.ts';
-const dir = new URL('./', import.meta.url);
-
-export function loadFixture(fixturePath: string, envionmentVariables?: Record<string, string>) {
- async function runBuild() {
- const proc = Deno.run({
- cmd: ['node', '../../../../../../astro/astro.js', 'build'],
- env: envionmentVariables,
- cwd: fromFileUrl(new URL(fixturePath, dir)),
- });
- await proc.status();
- proc.close();
- }
-
- async function runApp(entryPath: string) {
- const entryUrl = new URL(entryPath, dir);
- let proc = Deno.run({
- cmd: ['deno', 'run', '--allow-env', '--allow-net', fromFileUrl(entryUrl)],
- env: envionmentVariables,
- //cwd: fromFileUrl(entryUrl),
- stderr: 'piped',
- });
- const stderr = readableStreamFromReader(proc.stderr);
- const dec = new TextDecoder();
- for await (let bytes of stderr) {
- let msg = dec.decode(bytes);
- if (msg.includes(`Server running`)) {
- break;
- }
- }
- return () => proc.close();
- }
-
- async function cleanup() {
- const netlifyPath = new URL('.netlify', new URL(fixturePath, dir));
- const distPath = new URL('dist', new URL(fixturePath, dir));
-
- // remove the netlify folder
- await Deno.remove(netlifyPath, { recursive: true });
-
- // remove the dist folder
- await Deno.remove(distPath, { recursive: true });
- }
-
- return {
- runApp,
- runBuild,
- cleanup,
- };
-}
diff --git a/packages/integrations/netlify/test/functions/edge-middleware.test.js b/packages/integrations/netlify/test/functions/edge-middleware.test.js
index 219fd1ced..a83720a4d 100644
--- a/packages/integrations/netlify/test/functions/edge-middleware.test.js
+++ b/packages/integrations/netlify/test/functions/edge-middleware.test.js
@@ -10,6 +10,7 @@ describe('Middleware', () => {
output: 'server',
adapter: netlifyAdapter({
dist: new URL('./fixtures/middleware-with-handler-file/dist/', import.meta.url),
+ edgeMiddleware: true,
}),
site: `http://example.com`,
integrations: [testIntegration()],
diff --git a/packages/integrations/netlify/test/functions/prerender.test.js b/packages/integrations/netlify/test/functions/prerender.test.js
index a571dd76e..05a2c3971 100644
--- a/packages/integrations/netlify/test/functions/prerender.test.js
+++ b/packages/integrations/netlify/test/functions/prerender.test.js
@@ -1,7 +1,7 @@
import { expect } from 'chai';
+import { after } from 'node:test';
import netlifyAdapter from '../../dist/index.js';
import { loadFixture, testIntegration } from './test-utils.js';
-import { after } from 'node:test';
describe('Mixed Prerendering with SSR', () => {
/** @type {import('./test-utils').Fixture} */
@@ -27,9 +27,9 @@ describe('Mixed Prerendering with SSR', () => {
it('Wildcard 404 is sorted last', async () => {
const redir = await fixture.readFile('/_redirects');
- const baseRouteIndex = redir.indexOf('/ /.netlify/functions/entry 200');
- const oneRouteIndex = redir.indexOf('/one /one/index.html 200');
- const fourOhFourWildCardIndex = redir.indexOf('/* /.netlify/functions/entry 404');
+ const baseRouteIndex = redir.indexOf('/ /.netlify/functions/entry 200');
+ const oneRouteIndex = redir.indexOf('/one /one/index.html 200');
+ const fourOhFourWildCardIndex = redir.indexOf('/* /.netlify/functions/entry 404');
expect(oneRouteIndex).to.not.be.equal(-1);
expect(fourOhFourWildCardIndex).to.be.greaterThan(baseRouteIndex);
@@ -61,12 +61,15 @@ describe('Mixed Hybrid rendering with SSR', () => {
it('outputs a correct redirect file', async () => {
const redir = await fixture.readFile('/_redirects');
- const baseRouteIndex = redir.indexOf('/one /.netlify/functions/entry 200');
- const rootRouteIndex = redir.indexOf('/ /index.html 200');
- const fourOhFourIndex = redir.indexOf('/404 /404.html 200');
+ console.log(redir);
+ const baseRouteIndex = redir.indexOf('/one /.netlify/functions/entry 200');
+ const rootRouteIndex = redir.indexOf('/ /index.html 200');
+ const fourOhFourIndex = redir.indexOf('/404 /404.html 200');
+ const imageEndpoint = redir.indexOf('/_image /.netlify/functions/entry 200');
expect(rootRouteIndex).to.not.be.equal(-1);
expect(baseRouteIndex).to.not.be.equal(-1);
expect(fourOhFourIndex).to.not.be.equal(-1);
+ expect(imageEndpoint).to.not.be.equal(-1);
});
});
diff --git a/packages/integrations/netlify/test/functions/redirects.test.js b/packages/integrations/netlify/test/functions/redirects.test.js
index 1995718f8..8e3d46a68 100644
--- a/packages/integrations/netlify/test/functions/redirects.test.js
+++ b/packages/integrations/netlify/test/functions/redirects.test.js
@@ -1,6 +1,6 @@
import { expect } from 'chai';
-import { loadFixture, testIntegration } from './test-utils.js';
import netlifyAdapter from '../../dist/index.js';
+import { loadFixture, testIntegration } from './test-utils.js';
describe('SSG - Redirects', () => {
/** @type {import('../../../astro/test/test-utils').Fixture} */
@@ -25,6 +25,7 @@ describe('SSG - Redirects', () => {
it('Creates a redirects file', async () => {
let redirects = await fixture.readFile('/_redirects');
let parts = redirects.split(/\s+/);
+ console.log(parts);
expect(parts).to.deep.equal([
'/other',
'/',
@@ -38,6 +39,11 @@ describe('SSG - Redirects', () => {
'/.netlify/functions/entry',
'200',
+ // Image endpoint
+ '/_image',
+ '/.netlify/functions/entry',
+ '200',
+
// A real route
'/team/articles/*',
'/.netlify/functions/entry',
diff --git a/packages/integrations/netlify/test/functions/redirects.test.js.snap b/packages/integrations/netlify/test/functions/redirects.test.js.snap
index 322b4ee85..54095f052 100644
--- a/packages/integrations/netlify/test/functions/redirects.test.js.snap
+++ b/packages/integrations/netlify/test/functions/redirects.test.js.snap
@@ -4,5 +4,6 @@ exports[`SSG - Redirects Creates a redirects file 1`] = `
"/other / 301
/nope /.netlify/functions/entry 200
/ /.netlify/functions/entry 200
+/_image /.netlify/functions/entry 200
/team/articles/* /.netlify/functions/entry 200"
`;
diff --git a/packages/integrations/netlify/test/functions/split-support.test.js b/packages/integrations/netlify/test/functions/split-support.test.js
index 217b3c0d3..90427523c 100644
--- a/packages/integrations/netlify/test/functions/split-support.test.js
+++ b/packages/integrations/netlify/test/functions/split-support.test.js
@@ -13,6 +13,7 @@ describe('Split support', () => {
output: 'server',
adapter: netlifyAdapter({
dist: new URL('./fixtures/split-support/dist/', import.meta.url),
+ functionPerRoute: true,
}),
site: `http://example.com`,
integrations: [
@@ -22,9 +23,6 @@ describe('Split support', () => {
},
}),
],
- build: {
- split: true,
- },
});
await fixture.build();
});
@@ -32,7 +30,7 @@ describe('Split support', () => {
it('outputs a correct redirect file', async () => {
const redir = await fixture.readFile('/_redirects');
const lines = redir.split(/[\r\n]+/);
- expect(lines.length).to.equal(2);
+ expect(lines.length).to.equal(3);
expect(lines[0].includes('/blog')).to.be.true;
expect(lines[0].includes('blog.astro')).to.be.true;
@@ -45,15 +43,17 @@ describe('Split support', () => {
describe('Should create multiple functions', () => {
it('and hit 200', async () => {
if (_entryPoints) {
- for (const [, filePath] of _entryPoints) {
- const { handler } = await import(filePath.toString());
- const resp = await handler({
- httpMethod: 'POST',
- headers: {},
- rawUrl: 'http://example.com/',
- body: '{}',
- });
- expect(resp.statusCode).to.equal(200);
+ for (const [routeData, filePath] of _entryPoints) {
+ if (routeData.route !== '/_image') {
+ const { handler } = await import(filePath.toString());
+ const resp = await handler({
+ httpMethod: 'GET',
+ headers: {},
+ rawUrl: `http://example.com${routeData.route}`,
+ body: '{}',
+ });
+ expect(resp.statusCode).to.equal(200);
+ }
}
} else {
expect(false).to.be.true;
diff --git a/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs b/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs
index 48b1d4db1..464c03a6c 100644
--- a/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs
+++ b/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs
@@ -5,7 +5,4 @@ import { defineConfig } from 'astro/config';
export default defineConfig({
output: 'server',
adapter: netlify(),
- experimental: {
- assets: true,
- },
});