diff options
Diffstat (limited to 'packages/integrations/netlify/test/edge-functions')
7 files changed, 70 insertions, 0 deletions
diff --git a/packages/integrations/netlify/test/edge-functions/deps.ts b/packages/integrations/netlify/test/edge-functions/deps.ts new file mode 100644 index 000000000..f3e46181a --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/deps.ts @@ -0,0 +1,3 @@ +// @ts-nocheck +export { fromFileUrl } from 'https://deno.land/std@0.110.0/path/mod.ts'; +export { assertEquals, assert } from 'https://deno.land/std@0.132.0/testing/asserts.ts'; diff --git a/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts new file mode 100644 index 000000000..a99125980 --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/edge-basic.test.ts @@ -0,0 +1,18 @@ +// @ts-ignore +import { runBuild } from './test-utils.ts'; +// @ts-ignore +import { assertEquals, assert } from './deps.ts'; + +// @ts-ignore +Deno.test({ + name: 'Edge Basics', + async fn() { + let close = await runBuild('./fixtures/edge-basic/'); + const { default: handler } = await import('./fixtures/edge-basic/dist/edge-functions/entry.mjs'); + const response = await handler(new Request('http://example.com/')); + assertEquals(response.status, 200); + const html = await response.text(); + assert(html, 'got some html'); + await close(); + }, +}); 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 new file mode 100644 index 000000000..c55135e43 --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/astro.config.mjs @@ -0,0 +1,11 @@ +import { defineConfig } from 'astro/config'; +import { netlifyEdgeFunctions } from '@astrojs/netlify'; + +export default defineConfig({ + adapter: netlifyEdgeFunctions({ + dist: new URL('./dist/', import.meta.url), + }), + experimental: { + ssr: true + } +}) 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 new file mode 100644 index 000000000..bbda2476b --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/package.json @@ -0,0 +1,9 @@ +{ + "name": "@test/netlify-edge-astro-basic", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "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 new file mode 100644 index 000000000..a87de65db --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/index.astro @@ -0,0 +1,10 @@ +<html> +<head><title>Testing</title></head> +<body> + <h1>Test page</h1> + <h2>Links</h2> + <ul> + <li><a href="/two/">Two</a></li> + </ul> +</body> +</html> 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 new file mode 100644 index 000000000..b5a031be3 --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/fixtures/edge-basic/src/pages/two.astro @@ -0,0 +1,6 @@ +<html> +<head><title>Page Two</title></head> +<body> + <h1>Page two</h1> +</body> +</html> diff --git a/packages/integrations/netlify/test/edge-functions/test-utils.ts b/packages/integrations/netlify/test/edge-functions/test-utils.ts new file mode 100644 index 000000000..826f64d37 --- /dev/null +++ b/packages/integrations/netlify/test/edge-functions/test-utils.ts @@ -0,0 +1,13 @@ +// @ts-ignore +import { fromFileUrl } from './deps.ts'; +const dir = new URL('./', import.meta.url); + +export async function runBuild(fixturePath: string) { + // @ts-ignore + let proc = Deno.run({ + cmd: ['node', '../../../../../../astro/astro.js', 'build', '--silent'], + cwd: fromFileUrl(new URL(fixturePath, dir)), + }); + await proc.status(); + return async () => await proc.close(); +} |