diff options
Diffstat (limited to 'packages/integrations/netlify/test/edge-functions')
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, - }; -} |