test: compile option-API components and report template errors in the Vue test loader

This commit is contained in:
Sameh Khamis committed 2026-10-30 16:41:29 -07:00
1 parent 3d5d3ef014
commit b7e7058a5c
1 file changed
+12 -9
+12 -9
View File
@@ -14,16 +14,19 @@ export function compileVueModule(source, filename) {
return compileScript(descriptor, { id, inlineTemplate: true }).content;
}
const script = descriptor.script
? compileScript(descriptor, { id }).content.replace(
'export default',
'const __sfc__ =',
)
? compileScript(descriptor, { id, genDefaultAs: '__sfc__' }).content
: 'const __sfc__ = {};';
const template = descriptor.template
? compileTemplate({ source: descriptor.template.content, filename, id })
.code
: '';
return `${script}\n${template}\n__sfc__.render = typeof render === 'function' ? render : __sfc__.render;\nexport default __sfc__;\n`;
let template = '';
if (descriptor.template) {
const compiled = compileTemplate({
source: descriptor.template.content,
filename,
id,
});
if (compiled.errors.length) throw compiled.errors[0];
template = compiled.code;
}
return `${script}\n${template}\nif (typeof render === 'function') __sfc__.render = render;\nexport default __sfc__;\n`;
}
/** Node module hook: load `.vue` files as compiled modules. */