jmd-scripts
Version:
CLI for common scripts for my projects
56 lines (44 loc) • 1.53 kB
JavaScript
;
var _jestInCase = _interopRequireDefault(require("jest-in-case"));
var _serializers = require("./helpers/serializers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
expect.addSnapshotSerializer(_serializers.unquoteSerializer);
expect.addSnapshotSerializer(_serializers.winPathSerializer);
(0, _jestInCase.default)('format', ({
args
}) => {
// beforeEach
const {
sync: crossSpawnSyncMock
} = require('cross-spawn');
const originalExit = process.exit;
const originalArgv = process.argv;
const utils = require('../../utils');
utils.resolveBin = (modName, {
executable = modName
} = {}) => executable;
process.exit = jest.fn(); // tests
process.argv = ['node', '../format', ...args];
crossSpawnSyncMock.mockClear();
require('../format');
expect(crossSpawnSyncMock).toHaveBeenCalledTimes(1);
const [firstCall] = crossSpawnSyncMock.mock.calls;
const [script, calledArgs] = firstCall;
expect([script, ...calledArgs].join(' ')).toMatchSnapshot(); // afterEach
process.exit = originalExit;
process.argv = originalArgv;
jest.resetModules();
}, {
'calls prettier CLI with args': {
args: ['my-src/**/*.js']
},
'--no-write prevents --write argument from being added': {
args: ['--no-write']
},
'--config arg can be used for a custom config': {
args: ['--config', './my-config.js']
},
'--ignore-path arg can be used for a custom ignore file': {
args: ['--ignore-path', './.myignore']
}
});