Files
vue-cli/packages/@vue/cli-test-utils/createUpgradableProject.js
2020-11-20 09:10:49 +08:00

31 lines
915 B
JavaScript

const fs = require('fs')
const path = require('path')
const createTestProject = require('./createTestProject')
const Upgrader = require('@vue/cli/lib/Upgrader')
const outsideTestFolder = path.resolve(__dirname, '../../../../vue-upgrade-tests')
/**
* create upgradable project
* @param {string} name
* @param {import('@vue/cli').Preset} preset
* @returns {ReturnType<createTestProject> & Promise<{upgrade: Upgrader['upgrade']}>}
*/
module.exports = async function createUpgradableProject (name, preset) {
if (!fs.existsSync(outsideTestFolder)) {
fs.mkdirSync(outsideTestFolder)
}
process.env.VUE_CLI_TEST_DO_INSTALL_PLUGIN = true
const project = await createTestProject(name, preset, outsideTestFolder)
const upgrade = async function upgrade (pluginName, options) {
return (new Upgrader(project.dir)).upgrade(pluginName, options || {})
}
return {
...project,
upgrade
}
}