mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-03-13 12:40:18 -05:00
test: tests for template inehritance
This commit is contained in:
@@ -13,6 +13,35 @@ fs.writeFileSync(path.resolve(templateDir, 'foo.js'), 'foo(<%- options.n %>)')
|
||||
mkdirp.sync(path.resolve(templateDir, 'bar'))
|
||||
fs.writeFileSync(path.resolve(templateDir, 'bar/bar.js'), 'bar(<%- m %>)')
|
||||
|
||||
fs.writeFileSync(path.resolve(templateDir, 'replace.js'), `
|
||||
---
|
||||
extend: '${path.resolve(templateDir, 'bar/bar.js')}'
|
||||
replace: !!js/regexp /bar\\((.*)\\)/
|
||||
---
|
||||
baz($1)
|
||||
`.trim())
|
||||
|
||||
fs.writeFileSync(path.resolve(templateDir, 'multi-replace-source.js'), `
|
||||
foo(1)
|
||||
bar(2)
|
||||
`.trim())
|
||||
|
||||
fs.writeFileSync(path.resolve(templateDir, 'multi-replace.js'), `
|
||||
---
|
||||
extend: '${path.resolve(templateDir, 'multi-replace-source.js')}'
|
||||
replace:
|
||||
- !!js/regexp /foo\\((.*)\\)/
|
||||
- !!js/regexp /bar\\((.*)\\)/
|
||||
---
|
||||
<%# REPLACE %>
|
||||
baz($1)
|
||||
<%# END_REPLACE %>
|
||||
|
||||
<%# REPLACE %>
|
||||
qux($1)
|
||||
<%# END_REPLACE %>
|
||||
`.trim())
|
||||
|
||||
test('api: extendPackage', async () => {
|
||||
const generator = new Generator('/', {
|
||||
name: 'hello',
|
||||
@@ -178,6 +207,8 @@ test('api: render fs directory', async () => {
|
||||
|
||||
expect(fs.readFileSync('/foo.js', 'utf-8')).toMatch('foo(1)')
|
||||
expect(fs.readFileSync('/bar/bar.js', 'utf-8')).toMatch('bar(2)')
|
||||
expect(fs.readFileSync('/replace.js', 'utf-8')).toMatch('baz(2)')
|
||||
expect(fs.readFileSync('/multi-replace.js', 'utf-8')).toMatch('baz(1)\nqux(2)')
|
||||
})
|
||||
|
||||
test('api: render object', async () => {
|
||||
|
||||
@@ -229,7 +229,10 @@ function renderFile (name, data, ejsOptions) {
|
||||
const content = parsed.__content
|
||||
let finalTemplate = content.trim() + `\n`
|
||||
if (parsed.extend) {
|
||||
finalTemplate = fs.readFileSync(require.resolve(parsed.extend), 'utf-8')
|
||||
const extendPath = path.isAbsolute(parsed.extend)
|
||||
? parsed.extend
|
||||
: require.resolve(parsed.extend)
|
||||
finalTemplate = fs.readFileSync(extendPath, 'utf-8')
|
||||
if (parsed.replace) {
|
||||
if (Array.isArray(parsed.replace)) {
|
||||
const replaceMatch = content.match(replaceBlockRE)
|
||||
|
||||
Reference in New Issue
Block a user