Testing Cypress E2E Integration and Configuration in Vue CLI
This test suite validates the Cypress E2E testing integration within Vue CLI projects, covering both JavaScript and TypeScript implementations. It ensures proper configuration and execution of end-to-end tests across different development environments.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
vuejs/vue-cli
packages/@vue/cli-plugin-e2e-cypress/__tests__/cypressPlugin.spec.js
jest.setTimeout(process.env.APPVEYOR ? 120000 : 60000)
const create = require('@vue/cli-test-utils/createTestProject')
test('should work', async () => {
const project = await create('e2e-cypress', {
plugins: {
'@vue/cli-plugin-babel': {},
'@vue/cli-plugin-e2e-cypress': {},
'@vue/cli-plugin-eslint': {
config: 'airbnb',
lintOn: 'save'
}
}
})
const config = JSON.parse(await project.read('cypress.json'))
config.video = false
await project.write('cypress.json', JSON.stringify(config))
if (!process.env.CI) {
await project.run(`vue-cli-service test:e2e`)
} else if (!process.env.APPVEYOR) {
await project.run(`vue-cli-service test:e2e --headless`)
}
})
test('should work with TS', async () => {
const project = await create('e2e-cypress-ts', {
plugins: {
'@vue/cli-plugin-typescript': {
'classComponent': true,
'lintOn': ['save']
},
'@vue/cli-plugin-e2e-cypress': {}
}
})
const config = JSON.parse(await project.read('cypress.json'))
config.video = false
await project.write('cypress.json', JSON.stringify(config))
if (!process.env.CI) {
await project.run(`vue-cli-service test:e2e`)
} else if (!process.env.APPVEYOR) {
await project.run(`vue-cli-service test:e2e --headless`)
}
})