You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
7.4 KiB
205 lines
7.4 KiB
1 month ago
|
/**
|
||
|
* @author Toru Nagashima
|
||
|
* @copyright 2016 Toru Nagashima. All rights reserved.
|
||
|
* See LICENSE file in root directory for full license.
|
||
|
*/
|
||
|
'use strict'
|
||
|
|
||
|
// ------------------------------------------------------------------------------
|
||
|
// Requirements
|
||
|
// ------------------------------------------------------------------------------
|
||
|
|
||
|
const assert = require('assert').strict
|
||
|
const { strictEqual } = assert
|
||
|
|
||
|
const nodeApi = require('../lib')
|
||
|
const { result, removeResult, runAll, runPar, runSeq } = require('./lib/util')
|
||
|
|
||
|
// ------------------------------------------------------------------------------
|
||
|
// Test
|
||
|
// ------------------------------------------------------------------------------
|
||
|
|
||
|
describe('[argument-placeholders]', () => {
|
||
|
before(() => process.chdir('test-workspace'))
|
||
|
after(() => process.chdir('..'))
|
||
|
|
||
|
beforeEach(removeResult)
|
||
|
|
||
|
describe("If arguments preceded by '--' are nothing, '{1}' should be empty:", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {1}')
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {1}'])
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
|
||
|
it("npm-run-all command (only '--' exists)", () =>
|
||
|
runAll(['test-task:dump {1}', '--'])
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {1}'])
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
|
||
|
it("run-s command (only '--' exists)", () =>
|
||
|
runSeq(['test-task:dump {1}', '--'])
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {1}'])
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
|
||
|
it("run-p command (only '--' exists)", () =>
|
||
|
runPar(['test-task:dump {1}', '--'])
|
||
|
.then(() => strictEqual(result(), '[]')))
|
||
|
})
|
||
|
|
||
|
describe("'{1}' should be replaced by the 1st argument preceded by '--':", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {1}', { arguments: ['1st', '2nd'] })
|
||
|
.then(() => strictEqual(result(), '["1st"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {1}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {1}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {1}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st"]')))
|
||
|
})
|
||
|
|
||
|
describe("'{2}' should be replaced by the 2nd argument preceded by '--':", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {2}', { arguments: ['1st', '2nd'] })
|
||
|
.then(() => strictEqual(result(), '["2nd"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {2}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["2nd"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {2}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["2nd"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {2}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["2nd"]')))
|
||
|
})
|
||
|
|
||
|
describe("'{@}' should be replaced by the every argument preceded by '--':", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {@}', { arguments: ['1st', '2nd'] })
|
||
|
.then(() => strictEqual(result(), '["1st","2nd"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {@}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st","2nd"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {@}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st","2nd"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {@}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st","2nd"]')))
|
||
|
})
|
||
|
|
||
|
describe("'{*}' should be replaced by the all arguments preceded by '--':", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {*}', { arguments: ['1st', '2nd'] })
|
||
|
.then(() => strictEqual(result(), '["1st 2nd"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {*}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st 2nd"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {*}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st 2nd"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {*}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st 2nd"]')))
|
||
|
})
|
||
|
|
||
|
describe("'{%}' should be unfolded into one command for each argument following '--':", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {%}', { arguments: ['1st', '2nd'] })
|
||
|
.then(() => strictEqual(result(), '["1st"]["2nd"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {%}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st"]["2nd"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {%}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st"]["2nd"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {%}', '--', '1st', '2nd'])
|
||
|
.then(() => {
|
||
|
const value = result()
|
||
|
assert(value === '["1st"]["2nd"]' || value === '["2nd"]["1st"]')
|
||
|
}))
|
||
|
})
|
||
|
|
||
|
describe("Every '{1}', '{2}', '{@}' and '{*}' should be replaced by the arguments preceded by '--':", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {1} {2} {3} {@} {*}', { arguments: ['1st', '2nd'] })
|
||
|
.then(() => strictEqual(result(), '["1st","2nd","1st","2nd","1st 2nd"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {1} {2} {3} {@} {*}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st","2nd","1st","2nd","1st 2nd"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {1} {2} {3} {@} {*}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st","2nd","1st","2nd","1st 2nd"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {1} {2} {3} {@} {*}', '--', '1st', '2nd'])
|
||
|
.then(() => strictEqual(result(), '["1st","2nd","1st","2nd","1st 2nd"]')))
|
||
|
})
|
||
|
|
||
|
describe("'{1:-foo}' should be replaced by 'foo' if arguments are nothing:", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {1:-foo} {1}')
|
||
|
.then(() => strictEqual(result(), '["foo"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {1:-foo} {1}'])
|
||
|
.then(() => strictEqual(result(), '["foo"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {1:-foo} {1}'])
|
||
|
.then(() => strictEqual(result(), '["foo"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {1:-foo} {1}'])
|
||
|
.then(() => strictEqual(result(), '["foo"]')))
|
||
|
})
|
||
|
|
||
|
describe("'{1:=foo}' should be replaced by 'foo' and should affect following '{1}' if arguments are nothing:", () => {
|
||
|
it('Node API', () =>
|
||
|
nodeApi('test-task:dump {1:=foo} {1}')
|
||
|
.then(() => strictEqual(result(), '["foo","foo"]')))
|
||
|
|
||
|
it('npm-run-all command', () =>
|
||
|
runAll(['test-task:dump {1:=foo} {1}'])
|
||
|
.then(() => strictEqual(result(), '["foo","foo"]')))
|
||
|
|
||
|
it('run-s command', () =>
|
||
|
runSeq(['test-task:dump {1:=foo} {1}'])
|
||
|
.then(() => strictEqual(result(), '["foo","foo"]')))
|
||
|
|
||
|
it('run-p command', () =>
|
||
|
runPar(['test-task:dump {1:=foo} {1}'])
|
||
|
.then(() => strictEqual(result(), '["foo","foo"]')))
|
||
|
})
|
||
|
})
|