Files
bun.sh/test/bake/dev/dev-plugins.test.ts
2024-12-03 18:27:54 -08:00

67 lines
1.5 KiB
TypeScript

// CSS tests concern bundling bugs with CSS files
import { devTest, minimalFramework, Step } from "../dev-server-harness";
// Note: more in depth testing of plugins is done in test/bundler/bundler_plugin.test.ts
devTest("onResolve", {
framework: minimalFramework,
pluginFile: `
import * as path from 'path';
export default [
{
name: 'a',
setup(build) {
build.onResolve({ filter: /trigger/ }, (args) => {
return { path: path.join(import.meta.dirname, '/file.ts') };
});
},
}
];
`,
files: {
"file.ts": `
export const value = 1;
`,
"routes/index.ts": `
import { value } from 'trigger';
export default function (req, meta) {
return new Response('value: ' + value);
}
`,
},
async test(dev) {
await dev.fetch("/").expect('value: 1');
},
});
devTest("onLoad", {
framework: minimalFramework,
pluginFile: `
import * as path from 'path';
export default [
{
name: 'a',
setup(build) {
build.onLoad({ filter: /trigger/ }, (args) => {
return { code: 'export const value = 2;' };
});
},
}
];
`,
files: {
"trigger.ts": `
export const value = 1;
`,
"routes/index.ts": `
import { value } from '../trigger.ts';
export default function (req, meta) {
return new Response('value: ' + value);
}
`,
},
async test(dev) {
await dev.fetch("/").expect('value: 1');
},
});