mirror of
https://github.com/cypress-io/cypress.git
synced 2026-04-24 07:59:12 -05:00
Wrap konfig load from scripts tests to avoid changing CWD (#4067)
* chore: add utility method to get konfig from scripts tests Local scripts specs should be be caught by the changing current directory when loading `konfig.coffee` (which loads `cwd.coffee`, which changes the cwd to `packages/server`). This was throwing snapshot tests into saving into a wrong folder until I have noticed this and fixed in [v8.0.3](https://github.com/bahmutov/snap-shot-core/releases/tag/v8.0.3) * linting * add more comments
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
const la = require('lazy-ass')
|
||||
const is = require('check-more-types')
|
||||
const { join } = require('path')
|
||||
|
||||
/* eslint-env mocha */
|
||||
describe('konfig check', () => {
|
||||
/*
|
||||
script tests should NOT suddenly change the current working directory to
|
||||
packages/server - otherwise the local path filenames might be all wrong
|
||||
and unexpected. The current working directory changes when we
|
||||
require `packages/server/lib/konfig` which in tern requires
|
||||
`lib/cwd` which changes CWD.
|
||||
|
||||
From the scripts unit tests we should not use `lib/konfig` directly,
|
||||
instead we should use `binary/get-config` script to get the konfig function.
|
||||
*/
|
||||
|
||||
let cwd
|
||||
|
||||
before(() => {
|
||||
cwd = process.cwd()
|
||||
la(
|
||||
!cwd.includes(join('packages', 'server')),
|
||||
'process CWD is set to',
|
||||
cwd,
|
||||
'for some reason'
|
||||
)
|
||||
// if the above assertion breaks, it means some script in binary scripts
|
||||
// loads "lib/konfig" directly, which unexpectedly changes the CWD.
|
||||
})
|
||||
|
||||
it('does not change CWD on load', () => {
|
||||
const konfig = require('../binary/get-config')()
|
||||
const cwdAfter = process.cwd()
|
||||
|
||||
la(
|
||||
cwd === cwdAfter,
|
||||
'previous cwd',
|
||||
cwd,
|
||||
'differs after loading konfig',
|
||||
cwdAfter
|
||||
)
|
||||
la(is.fn(konfig), 'expected konfig to be a function', konfig)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user