Files
vue-cli/packages/@vue/cli/__tests__/Creator.spec.js
Haoqun Jiang 7b5212feb1 chore: remove the word "Preview" from vue 3 preset (#6300)
Now that most Vue 3 core packages has reached stable, I think it makes
sense to remove the word "Preview".

Remaining dependencies to reach stable:
- @vue/test-utils 2.x (in RC)
- vue-class-component 8.x (in RC)
- vue-jest v5 (in alpha)
2021-02-21 22:32:40 +08:00

118 lines
2.4 KiB
JavaScript

jest.mock('fs')
jest.mock('inquirer')
const { defaults } = require('../lib/options')
const assertPromptModule = require('@vue/cli-test-utils/assertPromptModule')
test('default', async () => {
const expectedPrompts = [
{
message: 'pick a preset',
choices: [
'Default',
'Default (Vue 3)',
'Manually select'
],
choose: 0
},
{
message: 'package manager',
choices: ['Yarn', 'PNPM', 'NPM'],
choose: 0
}
]
await assertPromptModule([], expectedPrompts, defaults.presets.default)
})
test('manual + PromptModuleAPI', async () => {
const mockModule = api => {
api.injectFeature({
name: 'Foo',
value: 'foo'
})
api.injectFeature({
name: 'Bar',
value: 'bar'
})
api.injectPrompt({
name: 'customFoo',
message: 'customFoo',
when: answers => answers.features.includes('foo'),
type: 'confirm'
})
api.injectPrompt({
name: 'customBar',
message: 'customBar',
when: answers => answers.features.includes('bar'),
type: 'list',
choices: []
})
api.injectOptionForPrompt('customBar', {
name: 'barChoice',
value: 'barChoice'
})
api.onPromptComplete((answers, options) => {
if (answers.features.includes('bar')) {
options.plugins.bar = {}
}
if (answers.customBar === 'barChoice') {
options.plugins.barChoice = {}
}
})
}
const expectedPrompts = [
{
message: 'Please pick a preset',
choose: 2 // manual
},
{
message: 'Check the features',
choices: ['Foo', 'Bar'],
check: [1]
},
{
message: 'customBar',
choices: ['barChoice'],
choose: 0
},
{
message: 'Where do you prefer placing config',
choices: ['dedicated', 'package.json'],
choose: 0
},
{
message: 'Save this as a preset',
confirm: true
},
{
message: 'Save preset as',
input: 'test'
}
]
const expectedOptions = {
useConfigFiles: true,
plugins: {
bar: {},
barChoice: {}
}
}
await assertPromptModule(mockModule, expectedPrompts, expectedOptions)
// should be saved now
const expectedPromptsForSaved = [
{
choices: [
'test',
'Default',
'Default (Vue 3)',
'Manually'
],
choose: 0
}
]
await assertPromptModule([], expectedPromptsForSaved, expectedOptions)
})