2020-11-30 23:38:06 +00:00
|
|
|
import { containsOnlyDeprecationWarnings, isDeprecatedDependencies } from '../plugins/install';
|
|
|
|
|
|
|
|
describe('install.js', () => {
|
|
|
|
describe('containsOnlyDeprecationWarning', () => {
|
|
|
|
it('should return true when all lines in stderr are deprecation warnings', () => {
|
2021-02-25 21:10:21 +00:00
|
|
|
const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});
|
|
|
|
|
2020-11-30 23:38:06 +00:00
|
|
|
const stderr =
|
|
|
|
// Warning #1
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz > xyz > xyz > xyz > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.\r\n' +
|
|
|
|
// Warning #2
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz > xyz > xyz > xyz > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.\n' +
|
|
|
|
// Warning #3
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz > xyz > xyz > xyz > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.';
|
|
|
|
expect(containsOnlyDeprecationWarnings(stderr)).toBe(true);
|
2021-02-25 21:10:21 +00:00
|
|
|
expect(consoleWarnSpy).toHaveBeenCalledTimes(3);
|
2020-11-30 23:38:06 +00:00
|
|
|
});
|
|
|
|
it('should return false when stderr contains a deprecation warning and an error', () => {
|
2021-02-25 21:10:21 +00:00
|
|
|
const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});
|
|
|
|
|
2020-11-30 23:38:06 +00:00
|
|
|
const stderr =
|
|
|
|
// Warning #1
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz > xyz > xyz > xyz > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.\r\n' +
|
|
|
|
// Error #1
|
|
|
|
'error https://npm.example.net/@types%example/-/nello-1.3.5.tgz:' +
|
|
|
|
'Integrity check failed for "@types/example"' +
|
|
|
|
'(computed integrity doesn\'t match our records, got "sha512-z4kkSfaPg==")\n' +
|
|
|
|
// Warning #2
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz > xyz > xyz > xyz > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.';
|
|
|
|
expect(containsOnlyDeprecationWarnings(stderr)).toBe(false);
|
2021-02-25 21:10:21 +00:00
|
|
|
expect(consoleWarnSpy).toHaveBeenCalledTimes(2);
|
2020-11-30 23:38:06 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
describe('isDeprecatedDependencies', () => {
|
|
|
|
it('should not match when the message is falsy', () => {
|
|
|
|
expect(isDeprecatedDependencies('')).toBe(false);
|
|
|
|
expect(isDeprecatedDependencies(null)).toBe(false);
|
|
|
|
expect(isDeprecatedDependencies(undefined)).toBe(false);
|
|
|
|
});
|
|
|
|
it('should match with multiple nested dependencies', () => {
|
|
|
|
const msg =
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz > xyz > xyz > xyz > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.';
|
|
|
|
expect(isDeprecatedDependencies(msg)).toBe(true);
|
|
|
|
});
|
|
|
|
it('should match with one nested dependency', () => {
|
|
|
|
const msg =
|
|
|
|
'warning insomnia-plugin-xxx-yyy > xyz: ' +
|
|
|
|
'xyz is no longer maintained and not recommended for usage due to the number of issues. ' +
|
|
|
|
'Please, upgrade your dependencies to the actual version of xyz.';
|
|
|
|
expect(isDeprecatedDependencies(msg)).toBe(true);
|
|
|
|
});
|
|
|
|
it('should not match with an unrelated warning', () => {
|
|
|
|
const msg =
|
|
|
|
'warning You are using Node "6.0.0" which is not supported and may encounter bugs or unexpected behaviour. ' +
|
|
|
|
'Yarn supports the following server range: "^4.8.0 || ^5.7.0 || ^6.2.2 || >=8.0.0"';
|
|
|
|
expect(isDeprecatedDependencies(msg)).toBe(false);
|
|
|
|
});
|
|
|
|
it('should not match with an unrelated error', () => {
|
|
|
|
const msg =
|
|
|
|
'error https://npm.example.net/@types%example/-/nello-1.3.5.tgz: ' +
|
|
|
|
'Integrity check failed for "@types/example" ' +
|
|
|
|
'(computed integrity doesn\'t match our records, got "sha512-z4kkSfaPg==")';
|
|
|
|
expect(isDeprecatedDependencies(msg)).toBe(false);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|