UNPKG

@interaktiv/dia-scripts

Version:

CLI toolbox with common scripts for most sort of projects at DIA

91 lines (79 loc) 2.65 kB
"use strict"; var _serializers = require("./__tests__/helpers/serializers"); expect.addSnapshotSerializer(_serializers.unquoteSerializer); let crossSpawnSyncMock, originalEnvs, originalLog, originalExit; describe('travis-after-success', () => { beforeEach(() => { ({ sync: crossSpawnSyncMock } = require('cross-spawn')); originalLog = console.log; console.log = jest.fn(); originalExit = process.exit; process.exit = jest.fn(); }); afterEach(() => { console.log = originalLog; process.exit = originalExit; jest.resetModules(); }); test.each` title | args ${'does not do the codecov script by default'} | ${{}} ${'does not do the codecov script when there is no coverage directory'} | ${{ hasCoverageDir: false }} ${'does do the codecov script when opted in (via CI)'} | ${{ skipCodeCov: false }} ${'does do the codecov script when opted in (via .opt-in)'} | ${{ isOptedInForCoverage: true }} ${'does not do autorelease script when running on travis but in a pull request'} | ${{ env: { TRAVIS: 'true', TRAVIS_BRANCH: 'master', TRAVIS_PULL_REQUEST: 'true' }, runsNothing: true }} `('$title', ({ args = {} }) => { const { hasCoverageDir = true, isOptedInForCoverage = false, skipCodeCov = true, env = { TRAVIS: 'true', TRAVIS_BRANCH: 'master', TRAVIS_PULL_REQUEST: 'false' }, runsNothing = false } = args; // Before each originalEnvs = Object.keys(env).map(envKey => { const orig = process.env[envKey]; process.env[envKey] = env[envKey]; return orig; }); const utils = require('../utils'); utils.resolveBin = (modName, { executable = modName } = {}) => executable; utils.hasFile = () => hasCoverageDir; utils.isOptedIn = optIn => optIn === 'reportcoverage' && isOptedInForCoverage; process.env.SKIP_CODECOV = skipCodeCov; require('./travis-after-success'); if (runsNothing) { expect(console.log.mock.calls).toMatchSnapshot(); return; } expect(crossSpawnSyncMock).toHaveBeenCalledTimes(1); const [firstCall] = crossSpawnSyncMock.mock.calls; const [scriptOne, calledArgsOne] = firstCall; expect([scriptOne, ...calledArgsOne].join(' ')).toMatchSnapshot(); // After each Object.keys(originalEnvs).forEach(envKey => { process.env[envKey] = env[envKey]; }); }); });