Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
ascorbic committed Jun 12, 2024
1 parent 4b2ef35 commit 0945f44
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 1 deletion.
24 changes: 24 additions & 0 deletions packages/astro/test/extension-matching.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import assert from 'node:assert/strict';
import { before, describe, it } from 'node:test';
import * as cheerio from 'cheerio';
import { loadFixture } from './test-utils.js';

describe('Matching .astro modules', () => {
let fixture;
/** @type {string} */
let output;

before(async () => {
fixture = await loadFixture({
root: './fixtures/extension-matching/',
});
await fixture.build();
output = await fixture.readFile('./index.html');
});

it('loads virtual modules with .astro in query string', async () => {
const $ = cheerio.load(output);
const title = $('h1').text();
assert.strictEqual(title, 'true');
});
});
38 changes: 38 additions & 0 deletions packages/astro/test/fixtures/extension-matching/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { defineConfig } from 'astro/config';

const MODULE_ID = 'virtual:test';
const RESOLVED_MODULE_ID = '\0virtual:test';

export default defineConfig({
integrations: [
{
name: 'astro-test-invalid-transform',
hooks: {
'astro:config:setup': ({ updateConfig }) => {
updateConfig({
vite: {
plugins: [
// -----------------------------------
{
name: 'vite-test-invalid-transform',
resolveId(id) {
if (id === MODULE_ID) {
// Astro tries to transform this import because the query params can end with '.astro'
return `${RESOLVED_MODULE_ID}?importer=index.astro`;
}
},
load(id) {
if (id.startsWith(RESOLVED_MODULE_ID)) {
return `export default 'true';`;
}
},
},
// -----------------------------------
],
},
});
},
},
},
],
});
16 changes: 16 additions & 0 deletions packages/astro/test/fixtures/extension-matching/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "@test/extension-matching",
"type": "module",
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"astro": "workspace:*"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
let success = 'false'
try {
success = (await import('virtual:test')).default
} catch (e) {
console.error('Failed to load virtual module:', e)
}
console.log('Loaded virtual module:', success)
---
<h1>{String(success)}</h1>
7 changes: 6 additions & 1 deletion pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 0945f44

Please sign in to comment.