depguard
Version:
A powerful CLI tool to check and update npm/yarn dependencies in your projects
61 lines (60 loc) • 2.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const check_1 = require("../check");
const factory_1 = require("../package-managers/factory");
jest.mock('fs');
jest.mock('path');
jest.mock('../package-managers/factory');
describe('Check', () => {
let check;
let mockPackageManager;
beforeEach(() => {
mockPackageManager = {
name: 'npm',
initialize: jest.fn().mockResolvedValue(undefined),
getLatestVersion: jest.fn(),
updatePackage: jest.fn(),
updateAllPackages: jest.fn(),
install: jest.fn(),
getLockFile: jest.fn().mockReturnValue('package-lock.json')
};
factory_1.PackageManagerFactory.createSync.mockReturnValue(mockPackageManager);
path_1.default.resolve.mockReturnValue('/test/package.json');
fs_1.default.readFileSync.mockReturnValue(JSON.stringify({
dependencies: {
'package1': '^1.0.0',
'package2': '^2.0.0'
},
devDependencies: {
'package3': '^3.0.0'
}
}));
check = new check_1.Check();
});
describe('checkUpdates', () => {
it('should check updates for all dependencies', async () => {
mockPackageManager.getLatestVersion
.mockResolvedValueOnce('2.0.0')
.mockResolvedValueOnce('3.0.0')
.mockResolvedValueOnce('4.0.0');
await check.checkUpdates();
expect(mockPackageManager.getLatestVersion).toHaveBeenCalledTimes(3);
expect(mockPackageManager.getLatestVersion).toHaveBeenCalledWith('package1');
expect(mockPackageManager.getLatestVersion).toHaveBeenCalledWith('package2');
expect(mockPackageManager.getLatestVersion).toHaveBeenCalledWith('package3');
});
it('should handle failed version fetches', async () => {
mockPackageManager.getLatestVersion
.mockResolvedValueOnce('2.0.0')
.mockResolvedValueOnce(null)
.mockResolvedValueOnce('4.0.0');
await check.checkUpdates();
expect(mockPackageManager.getLatestVersion).toHaveBeenCalledTimes(3);
});
});
});