Testing PWA Service Worker Integration in vue-cli
This test suite validates the Progressive Web App (PWA) generator functionality in Vue CLI, specifically focusing on service worker registration. It ensures proper import statement injection across both JavaScript and TypeScript implementations.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
vuejs/vue-cli
packages/@vue/cli-plugin-pwa/__tests__/pwaGenerator.spec.js
const generateWithPlugin = require('@vue/cli-test-utils/generateWithPlugin')
test('inject import statement for service worker', async () => {
const { files } = await generateWithPlugin([
{
id: 'core',
apply: require('@vue/cli-service/generator'),
options: {}
},
{
id: 'pwa',
apply: require('../generator'),
options: {}
}
])
expect(files['src/main.js']).toMatch(`import './registerServiceWorker'`)
})
test('inject import statement for service worker (with TS)', async () => {
const { files } = await generateWithPlugin([
{
id: 'core',
apply: require('@vue/cli-service/generator'),
options: {}
},
{
id: 'typescript',
apply: require('@vue/cli-plugin-typescript/generator'),
options: {}
},
{
id: 'pwa',
apply: require('../generator'),
options: {}
}
])
expect(files['src/main.ts']).toMatch(`import './registerServiceWorker'`)
})