mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-04 22:30:00 -06:00
* feat: support webpack-dev-server-5 for @cypress/webpack-dev-server [run ci] * sidestep Forge types installed by webpack dev server [run ci] * add changelog entry * remove webpack 4 types * format changelog * Update cli/CHANGELOG.md * Update npm/webpack-dev-server/src/helpers/sourceRelativeWebpackModules.ts Co-authored-by: Matt Schile <mschile@cypress.io> * add back in importsNotUsedAsValues and update system test snapshot --------- Co-authored-by: Jennifer Shehane <jennifer@cypress.io> Co-authored-by: Matt Schile <mschile@cypress.io>
105 lines
3.2 KiB
TypeScript
105 lines
3.2 KiB
TypeScript
import path from 'path'
|
|
import proxyquire from 'proxyquire'
|
|
import { expect } from 'chai'
|
|
|
|
import { createModuleMatrixResult } from './test-helpers/createModuleMatrixResult'
|
|
import EventEmitter from 'events'
|
|
|
|
const cypressConfig = {
|
|
projectRoot: path.join(__dirname, 'test-fixtures'),
|
|
devServerPublicPathRoute: path.join(__dirname, './test-public-path'),
|
|
indexHtmlFile: path.join(__dirname, 'component-index.html'),
|
|
} as Cypress.PluginConfigOptions
|
|
|
|
describe('devServer', function () {
|
|
this.timeout(10 * 1000)
|
|
|
|
it('creates a new devServer webpack4, webpackDevServer3', async () => {
|
|
const { devServer } = proxyquire('../src/devServer', {
|
|
'./helpers/sourceRelativeWebpackModules': {
|
|
sourceDefaultWebpackDependencies: () => {
|
|
return createModuleMatrixResult({
|
|
webpack: 4,
|
|
webpackDevServer: 3,
|
|
})
|
|
} },
|
|
}) as typeof import('../src/devServer')
|
|
|
|
const result = await devServer.create({
|
|
specs: [],
|
|
cypressConfig,
|
|
webpackConfig: {},
|
|
devServerEvents: new EventEmitter(),
|
|
})
|
|
|
|
expect(result.server).to.be.instanceOf(require('webpack-dev-server-3'))
|
|
expect(result.version).to.eq(3)
|
|
})
|
|
|
|
it('creates a new devServer webpack4, webpackDevServer4', async () => {
|
|
const { devServer } = proxyquire('../src/devServer', {
|
|
'./helpers/sourceRelativeWebpackModules': {
|
|
sourceDefaultWebpackDependencies: () => {
|
|
return createModuleMatrixResult({
|
|
webpack: 4,
|
|
webpackDevServer: 4,
|
|
})
|
|
} },
|
|
}) as typeof import('../src/devServer')
|
|
|
|
const result = await devServer.create({
|
|
specs: [],
|
|
cypressConfig,
|
|
webpackConfig: {},
|
|
devServerEvents: new EventEmitter(),
|
|
})
|
|
|
|
expect(result.server).to.be.instanceOf(require('webpack-dev-server'))
|
|
expect(result.version).to.eq(4)
|
|
})
|
|
|
|
it('creates a new devServer webpack5, webpackDevServer4', async () => {
|
|
const { devServer } = proxyquire('../src/devServer', {
|
|
'./helpers/sourceRelativeWebpackModules': {
|
|
sourceDefaultWebpackDependencies: () => {
|
|
return createModuleMatrixResult({
|
|
webpack: 5,
|
|
webpackDevServer: 4,
|
|
})
|
|
} },
|
|
}) as typeof import('../src/devServer')
|
|
|
|
const result = await devServer.create({
|
|
specs: [],
|
|
cypressConfig,
|
|
webpackConfig: {},
|
|
devServerEvents: new EventEmitter(),
|
|
})
|
|
|
|
expect(result.server).to.be.instanceOf(require('webpack-dev-server'))
|
|
expect(result.version).to.eq(4)
|
|
})
|
|
|
|
it('creates a new devServer webpack5, webpackDevServer5', async () => {
|
|
const { devServer } = proxyquire('../src/devServer', {
|
|
'./helpers/sourceRelativeWebpackModules': {
|
|
sourceDefaultWebpackDependencies: () => {
|
|
return createModuleMatrixResult({
|
|
webpack: 5,
|
|
webpackDevServer: 5,
|
|
})
|
|
} },
|
|
}) as typeof import('../src/devServer')
|
|
|
|
const result = await devServer.create({
|
|
specs: [],
|
|
cypressConfig,
|
|
webpackConfig: {},
|
|
devServerEvents: new EventEmitter(),
|
|
})
|
|
|
|
expect(result.server).to.be.instanceOf(require('webpack-dev-server-5'))
|
|
expect(result.version).to.eq(5)
|
|
})
|
|
})
|