@interaktiv/dia-scripts
Version:
CLI toolbox with common scripts for most sort of projects at DIA
45 lines (39 loc) • 1.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _crossSpawn = _interopRequireDefault(require("cross-spawn"));
describe('contributors', () => {
const {
sync: crossSpawnSyncMock
} = _crossSpawn.default;
const originalExit = process.exit;
const originalArgv = process.argv;
beforeEach(() => {
process.exit = jest.fn();
});
afterEach(() => {
process.exit = originalExit;
process.argv = originalArgv;
jest.resetModules();
});
test('calls all-contributors CLI with args', () => {
jest.mock('../utils', () => (0, _extends2.default)({}, jest.requireActual('../utils'), {
isBitbucketRepo: jest.fn(() => false)
}));
process.argv = ['node', './contributors', 'add'];
require('./contributors');
expect(crossSpawnSyncMock).toHaveBeenCalledTimes(1);
expect(crossSpawnSyncMock).toHaveBeenCalledWith(expect.stringMatching('all-contributors'), ['add'], {
stdio: 'inherit'
});
});
test('does throw an error for Bitbucket hosted repo', () => {
jest.mock('../utils', () => (0, _extends2.default)({}, jest.requireActual('../utils'), {
isBitbucketRepo: jest.fn(() => true)
}));
process.argv = ['node', './contributors', 'add'];
expect(() => {
require('./contributors');
}).toThrow();
});
});