mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-10 17:20:11 -06:00
72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
const path = require('path')
|
|
const _ = require('lodash')
|
|
const { fs } = require('@packages/server/lib/util/fs')
|
|
const { default: systemTests } = require('../lib/system-tests')
|
|
const { STDOUT_DURATION_IN_TABLES_RE, e2ePath } = require('../lib/normalizeStdout')
|
|
const { expectCorrectModuleApiResult } = require('../lib/resultsUtils')
|
|
const { it } = systemTests
|
|
|
|
const outputPath = path.join(e2ePath, 'output.json')
|
|
|
|
const specs = [
|
|
'simple_passing.cy.js',
|
|
'simple_hooks.cy.js',
|
|
'simple_failing.cy.js',
|
|
'simple_failing_h*.cy.js', // simple failing hook spec
|
|
].join(',')
|
|
|
|
describe('module api', () => {
|
|
systemTests.setup()
|
|
|
|
it('fails', {
|
|
spec: specs,
|
|
outputPath,
|
|
expectedExitCode: 5,
|
|
config: {
|
|
experimentalWebKitSupport: true,
|
|
},
|
|
async onRun (execFn) {
|
|
const { stdout } = await execFn()
|
|
|
|
_.each(STDOUT_DURATION_IN_TABLES_RE.exec(stdout), (str) => {
|
|
expect(str.trim(), 'spec durations in tables should not be 0ms').not.eq('0ms')
|
|
})
|
|
|
|
// now what we want to do is read in the outputPath
|
|
// and snapshot it so its what we expect after normalizing it
|
|
let json = await fs.readJsonAsync(outputPath)
|
|
|
|
json.runs = systemTests.normalizeRuns(json.runs)
|
|
|
|
// also mutates into normalized obj ready for snapshot
|
|
expectCorrectModuleApiResult(json, {
|
|
e2ePath, runs: 4, video: false,
|
|
})
|
|
},
|
|
})
|
|
|
|
it('failing with retries enabled', {
|
|
spec: 'simple_failing_hook.cy.js,simple_retrying.cy.js',
|
|
outputPath,
|
|
expectedExitCode: 4,
|
|
config: {
|
|
experimentalWebKitSupport: true,
|
|
retries: 1,
|
|
video: false,
|
|
},
|
|
async onRun (execFn) {
|
|
await execFn()
|
|
let json = await fs.readJsonAsync(outputPath)
|
|
|
|
json.runs = systemTests.normalizeRuns(json.runs)
|
|
|
|
// also mutates into normalized obj ready for snapshot
|
|
expectCorrectModuleApiResult(json, {
|
|
e2ePath,
|
|
runs: 2,
|
|
video: false,
|
|
})
|
|
},
|
|
})
|
|
})
|