iterative/vscode-dvc

View on GitHub
extension/scripts/coverIntegrationTests.js

Summary

Maintainability
A
0 mins
Test Coverage
const { resolve, join } = require('path')
const { writeFileSync } = require('fs-extra')
const execa = require('execa')

let activationEvents = []
let failed

const cwd = resolve(__dirname, '..')
const packageJsonPath = join(cwd, 'package.json')

const pipe = childProcess => {
  childProcess.stdout.pipe(process.stdout)
  childProcess.stderr.pipe(process.stderr)
}

const packageJson = require(packageJsonPath)
activationEvents = packageJson.activationEvents
packageJson.activationEvents = ['onStartupFinished']
writeFileSync(packageJsonPath, JSON.stringify(packageJson))

const runCover = async () => {
  const tests = execa('node', [join(cwd, 'dist', 'test', 'runTest.js')], {
    cwd
  })

  pipe(tests)
  try {
    await tests
  } catch {
    failed = true
  }
  packageJson.activationEvents = activationEvents

  writeFileSync(packageJsonPath, JSON.stringify(packageJson))

  const prettier = execa('prettier', ['--write', 'package.json'], { cwd })
  pipe(prettier)
  await prettier
  if (failed) {
    process.exit(1)
  }
}

runCover()