Files
cypress/system-tests/test/webpack_dev_server_spec.ts

56 lines
2.0 KiB
TypeScript

import systemTests from '../lib/system-tests'
import Fixtures from '../lib/fixtures'
import path from 'path'
import globby from 'globby'
import { escapeRegExp } from 'lodash'
describe('@cypress/webpack-dev-server', function () {
systemTests.setup()
const wdsPath = Fixtures.projectPath('webpack-dev-server')
systemTests.it('successfully loads and runs all specs', {
project: 'webpack-dev-server',
testingType: 'component',
spec: 'src/**/*',
browser: 'chrome',
expectedExitCode: 0,
onRun: async (exec) => {
// We do not expect any failures in this suite, but we need to check that we actually ran
// the tests that we expected to run to validate that WDS is properly parsing & loading
// tests with special filepaths
const { stdout } = await exec()
// Find all specs that should have been run as part of this system test
// by scanning filesystem using spec pattern
const files = await globby(path.join(wdsPath, 'src', '**', '*'))
// sanity check that we actually found some spec files
expect(files).to.have.length.greaterThan(0)
files.forEach((fileName) => {
// Parse out the subpath under 'src' that we expect to appear in the output results table
const expectedFileName = fileName
.replace(path.join(wdsPath, 'src'), '')
.replace(/^\/|\\/, '') // Remove leading path separator if one exists
// Pattern to match final output table entry
// Should include checkmark, filename, # of tests (1), and # of passes (1)
// ✔ [...bar].cy.js 17ms 1 1
const expectedPattern = new RegExp(`\\s+${escapeRegExp(expectedFileName)}\\s+\\d+ms\\s+1\\s+1`)
expect(stdout).to.match(expectedPattern)
})
},
})
systemTests.it('successfully loads and runs all specs with typescript config', {
project: 'webpack-dev-server-ts',
testingType: 'component',
spec: 'test.cy.ts',
browser: 'chrome',
expectedExitCode: 0,
})
})