Files
vue-cli/packages/@vue/cli-test-utils/assertPromptModule.js
2018-04-26 15:23:31 -04:00

48 lines
1.1 KiB
JavaScript

// using this requires mocking fs & inquirer
const Creator = require('@vue/cli/lib/Creator')
const { loadOptions } = require('@vue/cli/lib/options')
const { expectPrompts } = require('inquirer') // from mock
module.exports = async function assertPromptModule (
module,
expectedPrompts,
expectedOptions,
opts = {}
) {
// auto fill non-module prompts
if (opts.pluginsOnly) {
expectedPrompts.unshift(
{
message: 'Please pick a preset',
choose: 1
}
)
expectedPrompts.push(
{
message: 'Where do you prefer placing config',
choose: 1 // package.json
},
{
message: 'Save this as a preset',
confirm: false
}
)
if (!loadOptions().packageManager) {
expectedPrompts.push({
message: 'package manager',
choose: 0 // yarn
})
}
}
expectPrompts(expectedPrompts)
const creator = new Creator('test', '/', [].concat(module))
const preset = await creator.promptAndResolvePreset()
if (opts.pluginsOnly) {
delete preset.useConfigFiles
}
expect(preset).toEqual(expectedOptions)
}