UNPKG

jmd-scripts

Version:

CLI for common scripts for my projects

56 lines (44 loc) 1.53 kB
"use strict"; 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'] } });