mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-12 18:19:39 -06:00
75 lines
1.2 KiB
JavaScript
75 lines
1.2 KiB
JavaScript
jest.mock('fs')
|
|
|
|
const fs = require('fs')
|
|
const {
|
|
rcPath,
|
|
loadOptions,
|
|
saveOptions,
|
|
savePreset
|
|
} = require('../lib/options')
|
|
|
|
test('load options', () => {
|
|
expect(loadOptions()).toEqual({})
|
|
fs.writeFileSync(rcPath, JSON.stringify({
|
|
presets: {}
|
|
}, null, 2))
|
|
expect(loadOptions()).toEqual({
|
|
presets: {}
|
|
})
|
|
})
|
|
|
|
test('should not save unknown fields', () => {
|
|
saveOptions({
|
|
foo: 'bar'
|
|
})
|
|
expect(loadOptions()).toEqual({
|
|
presets: {}
|
|
})
|
|
})
|
|
|
|
test('save options', () => {
|
|
// partial
|
|
saveOptions({
|
|
packageManager: 'yarn'
|
|
})
|
|
expect(loadOptions()).toEqual({
|
|
packageManager: 'yarn',
|
|
presets: {}
|
|
})
|
|
|
|
// replace
|
|
saveOptions({
|
|
presets: {
|
|
foo: { a: 1 }
|
|
}
|
|
})
|
|
expect(loadOptions()).toEqual({
|
|
packageManager: 'yarn',
|
|
presets: {
|
|
foo: { a: 1 }
|
|
}
|
|
})
|
|
})
|
|
|
|
test('save preset', () => {
|
|
savePreset('bar', { a: 2 })
|
|
expect(loadOptions()).toEqual({
|
|
packageManager: 'yarn',
|
|
presets: {
|
|
foo: { a: 1 },
|
|
bar: { a: 2 }
|
|
}
|
|
})
|
|
|
|
// should entirely replace presets
|
|
savePreset('foo', { c: 3 })
|
|
savePreset('bar', { d: 4 })
|
|
expect(loadOptions()).toEqual({
|
|
packageManager: 'yarn',
|
|
presets: {
|
|
foo: { c: 3 },
|
|
bar: { d: 4 }
|
|
}
|
|
})
|
|
})
|