summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/test/static-assets.test.js
diff options
context:
space:
mode:
authorGravatar Emanuele Stoppa <my.burning@gmail.com> 2025-02-07 08:47:40 +0000
committerGravatar GitHub <noreply@github.com> 2025-02-07 08:47:40 +0000
commitefef4136e36b7b272f39ee9e1d173b44c212ec34 (patch)
tree8b87e07aff600b01dbba7f4cfaa8f8ddbfa557a6 /packages/integrations/vercel/test/static-assets.test.js
parent4e7d97fb09f8180572fca5d823ad8edcda7b50b4 (diff)
parent64b118ac9558287c2da76247d171ae3a88d390e4 (diff)
downloadastro-efef4136e36b7b272f39ee9e1d173b44c212ec34.tar.gz
astro-efef4136e36b7b272f39ee9e1d173b44c212ec34.tar.zst
astro-efef4136e36b7b272f39ee9e1d173b44c212ec34.zip
Merge pull request #13147 from withastro/move-vercel
chore: move Vercel adapter to core monorepo
Diffstat (limited to 'packages/integrations/vercel/test/static-assets.test.js')
-rw-r--r--packages/integrations/vercel/test/static-assets.test.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/packages/integrations/vercel/test/static-assets.test.js b/packages/integrations/vercel/test/static-assets.test.js
new file mode 100644
index 000000000..9fe3d0bb5
--- /dev/null
+++ b/packages/integrations/vercel/test/static-assets.test.js
@@ -0,0 +1,72 @@
+import assert from 'node:assert/strict';
+import { describe, it } from 'node:test';
+import { loadFixture } from './test-utils.js';
+
+describe('Static Assets', () => {
+ /** @type {import('./test-utils.js').Fixture} */
+ let fixture;
+
+ const VALID_CACHE_CONTROL = 'public, max-age=31536000, immutable';
+
+ async function build({ adapter, assets, output }) {
+ fixture = await loadFixture({
+ root: './fixtures/static-assets/',
+ output,
+ adapter,
+ build: {
+ assets,
+ },
+ });
+ await fixture.build();
+ }
+
+ async function getConfig() {
+ const json = await fixture.readFile('../.vercel/output/config.json');
+ const config = JSON.parse(json);
+
+ return config;
+ }
+
+ async function getAssets() {
+ return fixture.config.build.assets;
+ }
+
+ async function checkValidCacheControl(assets) {
+ const config = await getConfig();
+ const theAssets = assets ?? (await getAssets());
+
+ const route = config.routes.find((r) => r.src === `^/${theAssets}/(.*)$`);
+ assert.equal(route.headers['cache-control'], VALID_CACHE_CONTROL);
+ assert.equal(route.continue, true);
+ }
+
+ describe('static adapter', () => {
+ it('has cache control', async () => {
+ const { default: vercel } = await import('@astrojs/vercel');
+ await build({ adapter: vercel() });
+ await checkValidCacheControl();
+ });
+
+ it('has cache control other assets', async () => {
+ const { default: vercel } = await import('@astrojs/vercel');
+ const assets = '_foo';
+ await build({ adapter: vercel(), assets });
+ await checkValidCacheControl(assets);
+ });
+ });
+
+ describe('serverless adapter', () => {
+ it('has cache control', async () => {
+ const { default: vercel } = await import('@astrojs/vercel');
+ await build({ output: 'server', adapter: vercel() });
+ await checkValidCacheControl();
+ });
+
+ it('has cache control other assets', async () => {
+ const { default: vercel } = await import('@astrojs/vercel');
+ const assets = '_foo';
+ await build({ output: 'server', adapter: vercel(), assets });
+ await checkValidCacheControl(assets);
+ });
+ });
+});