aboutsummaryrefslogtreecommitdiff
path: root/packages/astro/test/astro-preview-headers.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/astro/test/astro-preview-headers.test.js')
-rw-r--r--packages/astro/test/astro-preview-headers.test.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/astro/test/astro-preview-headers.test.js b/packages/astro/test/astro-preview-headers.test.js
new file mode 100644
index 000000000..d33f46376
--- /dev/null
+++ b/packages/astro/test/astro-preview-headers.test.js
@@ -0,0 +1,41 @@
+import assert from 'node:assert/strict';
+import { after, before, describe, it } from 'node:test';
+import { loadFixture } from './test-utils.js';
+
+describe('Astro preview headers', () => {
+ let fixture;
+ let previewServer;
+ const headers = {
+ astro: 'test',
+ };
+
+ before(async () => {
+ fixture = await loadFixture({
+ root: './fixtures/astro-preview-headers/',
+ server: {
+ headers,
+ },
+ });
+ await fixture.build();
+ previewServer = await fixture.preview();
+ });
+
+ // important: close preview server (free up port and connection)
+ after(async () => {
+ await previewServer.stop();
+ });
+
+ describe('preview', () => {
+ it('returns custom headers for valid URLs', async () => {
+ const result = await fixture.fetch('/');
+ assert.equal(result.status, 200);
+ assert.equal(Object.fromEntries(result.headers).astro, headers.astro);
+ });
+
+ it('does not return custom headers for invalid URLs', async () => {
+ const result = await fixture.fetch('/bad-url');
+ assert.equal(result.status, 404);
+ assert.equal(Object.fromEntries(result.headers).hasOwnProperty('astro'), false);
+ });
+ });
+});