summaryrefslogtreecommitdiff
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
23 files changed, 0 insertions, 388 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,
- };
-}