CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes45downloads
parse.js210 linesDownload Raw Back to test
1'use strict';2 3var parse = require('../');4var test = require('tape');5 6test('parse args', function (t) {7	t.deepEqual(8		parse(['--no-moo']),9		{ moo: false, _: [] },10		'no'11	);12	t.deepEqual(13		parse(['-v', 'a', '-v', 'b', '-v', 'c']),14		{ v: ['a', 'b', 'c'], _: [] },15		'multi'16	);17	t.end();18});19 20test('comprehensive', function (t) {21	t.deepEqual(22		parse([23			'--name=meowmers', 'bare', '-cats', 'woo',24			'-h', 'awesome', '--multi=quux',25			'--key', 'value',26			'-b', '--bool', '--no-meep', '--multi=baz',27			'--', '--not-a-flag', 'eek',28		]),29		{30			c: true,31			a: true,32			t: true,33			s: 'woo',34			h: 'awesome',35			b: true,36			bool: true,37			key: 'value',38			multi: ['quux', 'baz'],39			meep: false,40			name: 'meowmers',41			_: ['bare', '--not-a-flag', 'eek'],42		}43	);44	t.end();45});46 47test('flag boolean', function (t) {48	var argv = parse(['-t', 'moo'], { boolean: 't' });49	t.deepEqual(argv, { t: true, _: ['moo'] });50	t.deepEqual(typeof argv.t, 'boolean');51	t.end();52});53 54test('flag boolean value', function (t) {55	var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {56		boolean: ['t', 'verbose'],57		default: { verbose: true },58	});59 60	t.deepEqual(argv, {61		verbose: false,62		t: true,63		_: ['moo'],64	});65 66	t.deepEqual(typeof argv.verbose, 'boolean');67	t.deepEqual(typeof argv.t, 'boolean');68	t.end();69});70 71test('newlines in params', function (t) {72	var args = parse(['-s', 'X\nX']);73	t.deepEqual(args, { _: [], s: 'X\nX' });74 75	// reproduce in bash:76	// VALUE="new77	// line"78	// node program.js --s="$VALUE"79	args = parse(['--s=X\nX']);80	t.deepEqual(args, { _: [], s: 'X\nX' });81	t.end();82});83 84test('strings', function (t) {85	var s = parse(['-s', '0001234'], { string: 's' }).s;86	t.equal(s, '0001234');87	t.equal(typeof s, 'string');88 89	var x = parse(['-x', '56'], { string: 'x' }).x;90	t.equal(x, '56');91	t.equal(typeof x, 'string');92	t.end();93});94 95test('stringArgs', function (t) {96	var s = parse(['  ', '  '], { string: '_' })._;97	t.same(s.length, 2);98	t.same(typeof s[0], 'string');99	t.same(s[0], '  ');100	t.same(typeof s[1], 'string');101	t.same(s[1], '  ');102	t.end();103});104 105test('empty strings', function (t) {106	var s = parse(['-s'], { string: 's' }).s;107	t.equal(s, '');108	t.equal(typeof s, 'string');109 110	var str = parse(['--str'], { string: 'str' }).str;111	t.equal(str, '');112	t.equal(typeof str, 'string');113 114	var letters = parse(['-art'], {115		string: ['a', 't'],116	});117 118	t.equal(letters.a, '');119	t.equal(letters.r, true);120	t.equal(letters.t, '');121 122	t.end();123});124 125test('string and alias', function (t) {126	var x = parse(['--str', '000123'], {127		string: 's',128		alias: { s: 'str' },129	});130 131	t.equal(x.str, '000123');132	t.equal(typeof x.str, 'string');133	t.equal(x.s, '000123');134	t.equal(typeof x.s, 'string');135 136	var y = parse(['-s', '000123'], {137		string: 'str',138		alias: { str: 's' },139	});140 141	t.equal(y.str, '000123');142	t.equal(typeof y.str, 'string');143	t.equal(y.s, '000123');144	t.equal(typeof y.s, 'string');145 146	var z = parse(['-s123'], {147		alias: { str: ['s', 'S'] },148		string: ['str'],149	});150 151	t.deepEqual(152		z,153		{ _: [], s: '123', S: '123', str: '123' },154		'opt.string works with multiple aliases'155	);156	t.end();157});158 159test('slashBreak', function (t) {160	t.same(161		parse(['-I/foo/bar/baz']),162		{ I: '/foo/bar/baz', _: [] }163	);164	t.same(165		parse(['-xyz/foo/bar/baz']),166		{ x: true, y: true, z: '/foo/bar/baz', _: [] }167	);168	t.end();169});170 171test('alias', function (t) {172	var argv = parse(['-f', '11', '--zoom', '55'], {173		alias: { z: 'zoom' },174	});175	t.equal(argv.zoom, 55);176	t.equal(argv.z, argv.zoom);177	t.equal(argv.f, 11);178	t.end();179});180 181test('multiAlias', function (t) {182	var argv = parse(['-f', '11', '--zoom', '55'], {183		alias: { z: ['zm', 'zoom'] },184	});185	t.equal(argv.zoom, 55);186	t.equal(argv.z, argv.zoom);187	t.equal(argv.z, argv.zm);188	t.equal(argv.f, 11);189	t.end();190});191 192test('nested dotted objects', function (t) {193	var argv = parse([194		'--foo.bar', '3', '--foo.baz', '4',195		'--foo.quux.quibble', '5', '--foo.quux.o_O',196		'--beep.boop',197	]);198 199	t.same(argv.foo, {200		bar: 3,201		baz: 4,202		quux: {203			quibble: 5,204			o_O: true,205		},206	});207	t.same(argv.beep, { boop: true });208	t.end();209});210 
basant307/AI_Governance_Project · CoolFace