summaryrefslogtreecommitdiff
path: root/packages/integrations/cloudflare
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/cloudflare')
-rw-r--r--packages/integrations/cloudflare/package.json3
-rw-r--r--packages/integrations/cloudflare/src/index.ts10
-rw-r--r--packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs6
-rw-r--r--packages/integrations/cloudflare/test/fixtures/no-output/package.json9
-rw-r--r--packages/integrations/cloudflare/test/no-output.test.js25
-rw-r--r--packages/integrations/cloudflare/test/test-utils.js10
6 files changed, 56 insertions, 7 deletions
diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json
index 26c4fb30d..64a9e65a0 100644
--- a/packages/integrations/cloudflare/package.json
+++ b/packages/integrations/cloudflare/package.json
@@ -24,7 +24,8 @@
"scripts": {
"build": "astro-scripts build \"src/**/*.ts\" && tsc",
"build:ci": "astro-scripts build \"src/**/*.ts\"",
- "dev": "astro-scripts dev \"src/**/*.ts\""
+ "dev": "astro-scripts dev \"src/**/*.ts\"",
+ "test": "mocha --exit --timeout 20000 test/"
},
"dependencies": {
"esbuild": "^0.14.42"
diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts
index 29341453c..37faf690e 100644
--- a/packages/integrations/cloudflare/src/index.ts
+++ b/packages/integrations/cloudflare/src/index.ts
@@ -23,12 +23,10 @@ export default function createIntegration(): AstroIntegration {
_config = config;
if (config.output === 'static') {
- console.warn(
- `[@astrojs/cloudflare] \`output: "server"\` is required to use this adapter.`
- );
- console.warn(
- `[@astrojs/cloudflare] Otherwise, this adapter is not required to deploy a static site to Cloudflare.`
- );
+ throw new Error(`
+ [@astrojs/cloudflare] \`output: "server"\` is required to use this adapter. Otherwise, this adapter is not necessary to deploy a static site to Cloudflare.
+
+`);
}
},
'astro:build:start': ({ buildConfig }) => {
diff --git a/packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs
new file mode 100644
index 000000000..b90fd5b24
--- /dev/null
+++ b/packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs
@@ -0,0 +1,6 @@
+import { defineConfig } from 'astro/config';
+import cloudflare from '@astrojs/cloudflare';
+
+export default defineConfig({
+ adapter: cloudflare()
+});
diff --git a/packages/integrations/cloudflare/test/fixtures/no-output/package.json b/packages/integrations/cloudflare/test/fixtures/no-output/package.json
new file mode 100644
index 000000000..569c30890
--- /dev/null
+++ b/packages/integrations/cloudflare/test/fixtures/no-output/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@test/astro-cloudflare-no-output",
+ "version": "0.0.0",
+ "private": true,
+ "dependencies": {
+ "@astrojs/cloudflare": "workspace:*",
+ "astro": "workspace:*"
+ }
+}
diff --git a/packages/integrations/cloudflare/test/no-output.test.js b/packages/integrations/cloudflare/test/no-output.test.js
new file mode 100644
index 000000000..c82d45210
--- /dev/null
+++ b/packages/integrations/cloudflare/test/no-output.test.js
@@ -0,0 +1,25 @@
+import { loadFixture } from './test-utils.js';
+import { expect } from 'chai';
+
+describe('Missing output config', () => {
+ /** @type {import('./test-utils').Fixture} */
+ let fixture;
+
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/no-output/',
+ });
+ });
+
+ it('throws during the build', async () => {
+ let error = undefined;
+ try {
+ await fixture.build();
+ } catch(err) {
+ error = err;
+ }
+ expect(error).to.not.be.equal(undefined);
+ expect(error.message).to.include(`output: "server"`);
+ });
+});
+
diff --git a/packages/integrations/cloudflare/test/test-utils.js b/packages/integrations/cloudflare/test/test-utils.js
new file mode 100644
index 000000000..6bb3e7c25
--- /dev/null
+++ b/packages/integrations/cloudflare/test/test-utils.js
@@ -0,0 +1,10 @@
+import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
+
+export { fixLineEndings } from '../../../astro/test/test-utils.js';
+
+export function loadFixture(config) {
+ if (config?.root) {
+ config.root = new URL(config.root, import.meta.url);
+ }
+ return baseLoadFixture(config);
+}