patch-pulse
Version:
Check for outdated npm dependencies
146 lines • 5.9 kB
JavaScript
import { describe, expect, it } from 'vitest';
import { getUnknownArgs } from '../getUnknownArgs.js';
describe('getUnknownArgs', () => {
const validFlags = [
'-h',
'--help',
'-i',
'--info',
'-v',
'--version',
'-l',
'--license',
'-s',
'--skip',
];
it('should return empty array when all args are valid flags', () => {
const args = ['--help', '--version', '-h'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should return unknown args when invalid flags are present', () => {
const args = ['--help', '--unknown', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown']);
});
it('should return multiple unknown args', () => {
const args = ['--help', '--unknown1', '--unknown2', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown1', '--unknown2']);
});
it('should return empty array when args array is empty', () => {
const args = [];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should return all args when validFlags array is empty', () => {
const args = ['--help', '--version'];
const result = getUnknownArgs({ args, validFlags: [] });
expect(result).toEqual(['--help', '--version']);
});
it('should exclude args that come after -s flag', () => {
const args = ['--help', '-s', 'package-to-skip', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should exclude args that come after --skip flag', () => {
const args = ['--help', '--skip', 'package-to-skip', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should exclude multiple args that come after skip flag', () => {
const args = ['--help', '--skip', 'package1', 'package2', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should include unknown args that come before skip flag', () => {
const args = ['--unknown', '--skip', 'package-to-skip', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown']);
});
it('should include unknown args that come after skip flag but are not immediately after', () => {
const args = ['--skip', 'package-to-skip', '--version', '--unknown'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown']);
});
it('should handle skip flag at the beginning', () => {
const args = ['-s', 'package-to-skip', '--help', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should handle skip flag at the end', () => {
const args = ['--help', '--version', '-s', 'package-to-skip'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should handle multiple skip flags', () => {
const args = [
'--help',
'-s',
'package1',
'--skip',
'package2',
'--version',
];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should handle skip flag with no following args', () => {
const args = ['--help', '--skip', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should handle skip flag as the last argument', () => {
const args = ['--help', '--version', '--skip'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should handle mixed valid and invalid flags with skip logic', () => {
const args = [
'--unknown1',
'--help',
'--skip',
'package-to-skip',
'--unknown2',
'--version',
];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown1']);
});
it('should handle short flags correctly', () => {
const args = ['-h', '-x', '-v', '-y'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['-x', '-y']);
});
it('should be case sensitive', () => {
const args = ['--HELP', '--Version', '--unknown'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--HELP', '--Version', '--unknown']);
});
it('should handle duplicate valid flags', () => {
const args = ['--help', '--help', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual([]);
});
it('should handle duplicate unknown flags', () => {
const args = ['--help', '--unknown', '--unknown', '--version'];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown', '--unknown']);
});
it('should handle complex scenario with multiple skip flags and unknown args', () => {
const args = [
'--unknown1',
'--help',
'-s',
'package1',
'--unknown2',
'--skip',
'package2',
'--version',
'--unknown3',
];
const result = getUnknownArgs({ args, validFlags });
expect(result).toEqual(['--unknown1', '--unknown3']);
});
});
//# sourceMappingURL=getUnknownArgs.test.js.map