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; return compileScript(descriptor, { id, inlineTemplate: true }).content;
} }
const script = descriptor.script const script = descriptor.script
? compileScript(descriptor, { id }).content.replace( ? compileScript(descriptor, { id, genDefaultAs: '__sfc__' }).content
'export default',
'const __sfc__ =',
)
: 'const __sfc__ = {};'; : 'const __sfc__ = {};';
const template = descriptor.template let template = '';
? compileTemplate({ source: descriptor.template.content, filename, id }) if (descriptor.template) {
.code const compiled = compileTemplate({
: ''; source: descriptor.template.content,
return `${script}\n${template}\n__sfc__.render = typeof render === 'function' ? render : __sfc__.render;\nexport default __sfc__;\n`; 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. */ /** Node module hook: load `.vue` files as compiled modules. */