setup-php/node_modules/argv/test/test-mods.js

119 lines
1.7 KiB
JavaScript
Raw Normal View History

2019-09-20 09:41:20 +07:00
munit( 'Modules', function( assert ) {
argv.clear().option([
{
name: 'bool',
short: 'a',
type: 'boolean'
},
{
name: 'bool2',
short: 'b',
type: 'boolean'
},
{
name: 'bool3',
short: 'c',
type: 'boolean'
},
{
name: 'path',
short: 'p',
type: 'path'
},
{
mod: 'mod',
options: [
{
name: 'bool',
short: 'a',
type: 'boolean'
},
{
name: 'bool2',
short: 'b',
type: 'boolean'
},
{
name: 'bool3',
short: 'c',
type: 'boolean'
},
{
name: 'path',
short: 'p',
type: 'path'
}
]
}
]);
[
{
name: 'root',
args: 'targ1 -p /a/b/c targ2 -abc targ3',
targets: [ 'targ1', 'targ2', 'targ3' ],
options: {
path: '/a/b/c',
bool: true,
bool2: true,
bool3: true
}
},
{
name: 'mod',
args: 'mod targ1 -ab',
mod: 'mod',
targets: [ 'targ1' ],
options: {
bool: true,
bool2: true
}
},
{
name: 'mod-path',
args: 'mod targ1 -p /a/b/c',
mod: 'mod',
targets: [ 'targ1' ],
options: {
path: '/a/b/c'
}
}
].forEach(function( object ) {
var args = argv.run( argv.isArray( object.args ) ? object.args : object.args.split( ' ' ) );
// Option parsing
assert.deepEqual( object.name + '::options', args.options, object.options );
// Mod comparison
if ( object.mod ) {
assert.equal( object.name + '::mod', args.mod, object.mod );
}
else {
assert.ok( object.name + '::mod', ! args.mod );
}
// Target comparison
if ( object.targets ) {
assert.deepEqual( object.name + '::targets', args.targets, object.targets );
}
else {
assert.ok( object.name + '::targets', ! args.targets.length );
}
});
});