Files
cypress/scripts/test-unique-npm-and-binary.js

51 lines
1.2 KiB
JavaScript

/* eslint-disable no-console */
const minimist = require('minimist')
const os = require('os')
const la = require('lazy-ass')
const fs = require('fs-extra')
const is = require('check-more-types')
const execa = require('execa')
const { getNameAndBinary } = require('./utils')
const options = minimist(process.argv)
const cwd = options.cwd || '/tmp/testing'
fs.ensureDirSync(cwd)
const spawnOpts = {
cwd,
shell: os.platform() === 'win32' ? 'bash.exe' : '/bin/bash',
stdio: 'inherit',
}
const { npm, binary } = getNameAndBinary(process.argv)
la(is.unemptyString(npm), 'missing npm url')
la(is.unemptyString(binary), 'missing binary url')
console.log('Create Dummy Project')
execa('npm init -y', spawnOpts)
.then(console.log)
.then(() => {
console.log('testing NPM from', npm)
console.log('and binary from', binary)
console.log('in', cwd)
return execa(`npm install ${npm}`, {
...spawnOpts,
env: {
CYPRESS_INSTALL_BINARY: binary,
},
}).then(console.log)
})
.then(() => {
console.log('Verify Cypress binary')
return execa('$(yarn bin cypress) verify', spawnOpts)
.then(console.log)
})
.catch((e) => {
console.error(e)
process.exit(1)
})