35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
const { getArgValues } = require('./get-arg-values');
|
|
|
|
describe('getArgValues helper', () => {
|
|
it('should be able to run if there are no values to process', () => {
|
|
const args = ['/Path/to/node', '/Path/to/script'];
|
|
expect(getArgValues(args)).toEqual({});
|
|
expect(getArgValues()).toEqual({});
|
|
});
|
|
|
|
it('should parse the third element (key/value) if provided', () => {
|
|
const args = ['/Path/to/node', '/Path/to/script', 'num=4'];
|
|
expect(getArgValues(args)).toEqual({ num: '4' });
|
|
});
|
|
|
|
it('should parse multiple arguments (key/value) if provided', () => {
|
|
const args = ['/Path/to/node', '/Path/to/script', 'num=4', 'another=5'];
|
|
expect(getArgValues(args)).toEqual({ another: '5', num: '4' });
|
|
});
|
|
|
|
it('should parse the arguments with spaces (key/value) if provided', () => {
|
|
const args = ['/Path/to/node', '/Path/to/script', 'num = 3'];
|
|
expect(getArgValues(args)).toEqual({ num: '3' });
|
|
});
|
|
|
|
it('should throw error on invalid key/value arguments', () => {
|
|
const items = [
|
|
['/Path/to/node', '/Path/to/script', 'num='],
|
|
['/Path/to/node', '/Path/to/script', '='],
|
|
['/Path/to/node', '/Path/to/script', 'num=2', '= 3']
|
|
];
|
|
|
|
items.forEach(item => expect(() => getArgValues(item)).toThrow());
|
|
});
|
|
});
|