Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
test('pwa', async () => {
// it's ok to mutate here since jest loads each test in a separate vm
defaultPreset.plugins['@vue/cli-plugin-pwa'] = {}
const project = await create('pwa-build', defaultPreset)
expect(project.has('src/registerServiceWorker.js')).toBe(true)
const { stdout } = await project.run('vue-cli-service build')
expect(stdout).toMatch('Build complete.')
expect(project.has('dist/index.html')).toBe(true)
expect(project.has('dist/favicon.ico')).toBe(true)
expect(project.has('dist/js')).toBe(true)
expect(project.has('dist/css')).toBe(true)
// PWA specific files
expect(project.has('dist/manifest.json')).toBe(true)
expect(project.has('dist/img/icons/android-chrome-512x512.png')).toBe(true)
// Make sure the base preload/prefetch are not affected
{
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)
}
await runSilently(() => {
require('yorkie/src/install')(path.join(project.dir, 'node_modules'))
// since yorkie isn't actually installed in the test project, we need to
// symlink it
return linkBin(
path.resolve(require.resolve('yorkie/src/install'), '../../'),
path.join(project.dir, 'node_modules', 'yorkie')
)
})
const hook = await read('.git/hooks/pre-commit')
function setup (context) {
// Package installation progress events
installProgress.on('progress', value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
})
installProgress.on('log', message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
})
}
function getInstallation (context) {
if (!eventsInstalled) {
eventsInstalled = true
// Package installation progress events
installProgress.on('progress', value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
})
installProgress.on('log', message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
})
}
return {
id: 'plugin-install',
pluginId: currentPluginId,
step: installationStep,
prompts: prompts.list()
}
}
async function initCreator (context) {
const creator = new Creator('', cwd.get(), getPromptModules())
/* Event listeners */
// Creator emits creation events (the project creation steps)
onCreationEvent = ({ event }) => {
progress.set({ id: PROGRESS_ID, status: event, info: null }, context)
}
creator.on('creation', onCreationEvent)
// Progress bar
onInstallProgress = value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
}
installProgress.on('progress', onInstallProgress)
// Package manager steps
onInstallLog = message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
}
installProgress.on('log', onInstallLog)
// Presets
const manualPreset = {
id: '__manual__',
name: 'org.vue.views.project-create.tabs.presets.manual.name',
description: 'org.vue.views.project-create.tabs.presets.manual.description',
link: null,
features: []
}
}
creator.on('creation', onCreationEvent)
// Progress bar
onInstallProgress = value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
}
installProgress.on('progress', onInstallProgress)
// Package manager steps
onInstallLog = message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
}
installProgress.on('log', onInstallLog)
// Presets
const manualPreset = {
id: '__manual__',
name: 'org.vue.views.project-create.tabs.presets.manual.name',
description: 'org.vue.views.project-create.tabs.presets.manual.description',
link: null,
features: []
}
const presetsData = creator.getPresets()
presets = [
...Object.keys(presetsData).map(
key => {
const preset = presetsData[key]
const features = getFeatures(preset).map(
f => toShortPluginId(f)
function getInstallation (context) {
if (!eventsInstalled) {
eventsInstalled = true
// Package installation progress events
installProgress.on('progress', value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
})
installProgress.on('log', message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
})
}
return {
id: 'plugin-install',
pluginId: currentPluginId,
step: installationStep,
prompts: prompts.list()
function setup (context) {
// Package installation progress events
installProgress.on('progress', value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
})
installProgress.on('log', message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
})
}
function getInstallation (context) {
if (!eventsInstalled) {
eventsInstalled = true
// Package installation progress events
installProgress.on('progress', value => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, progress: value }, context)
}
})
installProgress.on('log', message => {
if (progress.get(PROGRESS_ID)) {
progress.set({ id: PROGRESS_ID, info: message }, context)
}
})
}
return {
id: 'plugin-install',
pluginId: currentPluginId,
step: installationStep,
prompts: prompts.list()
}
}