mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-14 10:59:54 -06:00
93 lines
2.9 KiB
JavaScript
93 lines
2.9 KiB
JavaScript
require('../../spec_helper')
|
|
|
|
const os = require('os')
|
|
const util = require(`${lib}/util`)
|
|
const state = require(`${lib}/tasks/state`)
|
|
const info = require(`${lib}/exec/info`)
|
|
const spawn = require(`${lib}/exec/spawn`)
|
|
|
|
const snapshot = require('../../support/snapshot')
|
|
const stdout = require('../../support/stdout')
|
|
const normalize = require('../../support/normalize')
|
|
|
|
describe('exec info', function () {
|
|
beforeEach(function () {
|
|
sinon.stub(process, 'exit')
|
|
|
|
// common stubs
|
|
sinon.stub(spawn, 'start').resolves()
|
|
os.platform.returns('linux')
|
|
sinon.stub(os, 'totalmem').returns(1.2e+9)
|
|
sinon.stub(os, 'freemem').returns(4e+8)
|
|
sinon.stub(info, 'findProxyEnvironmentVariables').returns({})
|
|
sinon.stub(info, 'findCypressEnvironmentVariables').returns({})
|
|
sinon.stub(util, 'getApplicationDataFolder')
|
|
.withArgs('browsers').returns('/user/app/data/path/to/browsers')
|
|
.withArgs().returns('/user/app/data/path')
|
|
|
|
sinon.stub(util, 'pkgBuildInfo').returns({
|
|
stable: true,
|
|
})
|
|
|
|
sinon.stub(state, 'getCacheDir').returns('/user/path/to/binary/cache')
|
|
})
|
|
|
|
const startInfoAndSnapshot = async (snapshotName) => {
|
|
expect(snapshotName, 'missing snapshot name').to.be.a('string')
|
|
|
|
const output = stdout.capture()
|
|
|
|
await info.start()
|
|
stdout.restore()
|
|
|
|
snapshot(snapshotName, normalize(output.toString()))
|
|
}
|
|
|
|
it('prints collected info without env vars', async () => {
|
|
await startInfoAndSnapshot('cypress info without browsers or vars')
|
|
expect(spawn.start).to.be.calledWith(['--mode=info'], { dev: undefined })
|
|
})
|
|
|
|
it('prints proxy and cypress env vars', async () => {
|
|
info.findProxyEnvironmentVariables.returns({
|
|
PROXY_ENV_VAR1: 'some proxy variable',
|
|
PROXY_ENV_VAR2: 'another proxy variable',
|
|
})
|
|
|
|
info.findCypressEnvironmentVariables.returns({
|
|
CYPRESS_ENV_VAR1: 'my Cypress variable',
|
|
CYPRESS_ENV_VAR2: 'my other Cypress variable',
|
|
})
|
|
|
|
await startInfoAndSnapshot('cypress info with proxy and vars')
|
|
})
|
|
|
|
it('redacts sensitive cypress variables', async () => {
|
|
info.findCypressEnvironmentVariables.returns({
|
|
CYPRESS_ENV_VAR1: 'my Cypress variable',
|
|
CYPRESS_ENV_VAR2: 'my other Cypress variable',
|
|
CYPRESS_PROJECT_ID: 'abc123', // not sensitive
|
|
CYPRESS_RECORD_KEY: 'really really secret stuff', // should not be printed
|
|
})
|
|
|
|
await startInfoAndSnapshot('cypress redacts sensitive vars')
|
|
})
|
|
|
|
it('logs additional info about pre-releases', async () => {
|
|
util.pkgBuildInfo.returns({
|
|
stable: false,
|
|
commitSha: 'abc123',
|
|
commitBranch: 'someBranchName',
|
|
commitDate: new Date('2022-02-02').toISOString(),
|
|
})
|
|
|
|
await startInfoAndSnapshot('logs additional info about pre-releases')
|
|
})
|
|
|
|
it('logs if unbuilt development', async () => {
|
|
util.pkgBuildInfo.returns(undefined)
|
|
|
|
await startInfoAndSnapshot('logs additional info about development')
|
|
})
|
|
})
|