commit-and-tag-version
Version:
replacement for `npm version` with automatic CHANGELOG generation
37 lines (29 loc) • 927 B
JavaScript
const { promises: fsp } = require('fs');
let mockFs;
const setLockFile = (lockFile) => {
if (mockFs) {
mockFs.mockRestore();
}
mockFs = jest.spyOn(fsp, 'access').mockImplementation(async (path) => {
if (lockFile && path.endsWith(lockFile)) {
return Promise.resolve();
}
return Promise.reject(new Error('Invalid lockfile'));
});
};
describe('utils', function () {
it('detectPMByLockFile should work', async function () {
const { detectPMByLockFile } = require('../lib/detect-package-manager');
let pm = await detectPMByLockFile();
expect(pm).toEqual('npm');
setLockFile('yarn.lock');
pm = await detectPMByLockFile();
expect(pm).toEqual('yarn');
setLockFile('package-lock.json');
pm = await detectPMByLockFile();
expect(pm).toEqual('npm');
setLockFile('pnpm-lock.yaml');
pm = await detectPMByLockFile();
expect(pm).toEqual('pnpm');
});
});