@interaktiv/dia-scripts
Version:
CLI toolbox with common scripts for most sort of projects at DIA
65 lines (53 loc) • 2.2 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var utilsMock = _interopRequireWildcard(require("../utils"));
function hasFormat(linter) {
return linter.some(l => l.includes('format'));
}
function hasGitAdd(linter) {
return linter.includes('git add');
}
function getLintersFor(linters) {
return type => {
const key = Object.keys(linters).find(k => k.includes('*') && k.includes(type));
return linters[key];
};
}
jest.mock('../utils', () => (0, _extends2.default)({}, jest.requireActual('../utils'), {
isOptedOut: jest.fn((key, t) => t)
}));
describe('linstaged config', () => {
afterEach(() => {
jest.resetModules();
});
test('includes format and git add when not opted out', () => {
utilsMock.isOptedOut.mockImplementation((key, t, f) => f);
const config = require('./lintstagedrc');
const getLinterForType = getLintersFor(config);
const jsLinter = getLinterForType('js');
expect(hasFormat(jsLinter)).toBe(true);
expect(hasGitAdd(jsLinter)).toBe(true);
const apexLinter = getLinterForType('apex');
expect(hasFormat(apexLinter)).toBe(true);
expect(hasGitAdd(apexLinter)).toBe(true);
const formatLinter = getLinterForType('yaml');
expect(hasFormat(formatLinter)).toBe(true);
expect(hasGitAdd(formatLinter)).toBe(true);
});
test('does not include format and git add when opted out', () => {
utilsMock.isOptedOut.mockImplementation((key, t) => t);
const config = require('./lintstagedrc');
const getLinterForType = getLintersFor(config);
const jsLinter = getLinterForType('js');
expect(hasFormat(jsLinter)).toBe(false);
expect(hasGitAdd(jsLinter)).toBe(false);
const apexLinter = getLinterForType('apex');
expect(hasFormat(apexLinter)).toBe(false);
expect(hasGitAdd(apexLinter)).toBe(false);
const formatLinter = getLinterForType('yaml');
expect(hasFormat(formatLinter)).toBe(false);
expect(hasGitAdd(formatLinter)).toBe(false);
});
});