Files
vue-cli/packages/@vue/cli-test-utils/assertPromptModule.js
2018-01-27 17:03:31 -05:00

46 lines
1.0 KiB
JavaScript

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