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.
200 lines
5.7 KiB
200 lines
5.7 KiB
/** |
|
* @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 nodeApi = require('../lib') |
|
const BufferStream = require('./lib/buffer-stream') |
|
const { result, removeResult, runAll, runPar, runSeq } = require('./lib/util') |
|
|
|
// ------------------------------------------------------------------------------ |
|
// Test |
|
// ------------------------------------------------------------------------------ |
|
|
|
describe('[pattern] it should run matched tasks if glob like patterns are given.', () => { |
|
before(() => process.chdir('test-workspace')) |
|
after(() => process.chdir('..')) |
|
beforeEach(removeResult) |
|
|
|
describe('"test-task:append:*" to "test-task:append:a" and "test-task:append:b"', () => { |
|
it('Node API', async () => { |
|
await nodeApi('test-task:append:*') |
|
assert(result() === 'aabb') |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
await runAll(['test-task:append:*']) |
|
assert(result() === 'aabb') |
|
}) |
|
|
|
it('run-s command', async () => { |
|
await runSeq(['test-task:append:*']) |
|
assert(result() === 'aabb') |
|
}) |
|
|
|
it('run-p command', async () => { |
|
await runPar(['test-task:append:*']) |
|
assert( |
|
result() === 'abab' || |
|
result() === 'abba' || |
|
result() === 'baba' || |
|
result() === 'baab' |
|
) |
|
}) |
|
}) |
|
|
|
describe('"test-task:append:**:*" to "test-task:append:a", "test-task:append:a:c", "test-task:append:a:d", and "test-task:append:b"', () => { |
|
it('Node API', async () => { |
|
await nodeApi('test-task:append:**:*') |
|
assert(result() === 'aaacacadadbb') |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
await runAll(['test-task:append:**:*']) |
|
assert(result() === 'aaacacadadbb') |
|
}) |
|
|
|
it('run-s command', async () => { |
|
await runSeq(['test-task:append:**:*']) |
|
assert(result() === 'aaacacadadbb') |
|
}) |
|
}) |
|
|
|
describe('(should ignore duplications) "test-task:append:b" "test-task:append:*" to "test-task:append:b", "test-task:append:a"', () => { |
|
it('Node API', async () => { |
|
await nodeApi(['test-task:append:b', 'test-task:append:*']) |
|
assert(result() === 'bbaa') |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
await runAll(['test-task:append:b', 'test-task:append:*']) |
|
assert(result() === 'bbaa') |
|
}) |
|
|
|
it('run-s command', async () => { |
|
await runSeq(['test-task:append:b', 'test-task:append:*']) |
|
assert(result() === 'bbaa') |
|
}) |
|
|
|
it('run-p command', async () => { |
|
await runPar(['test-task:append:b', 'test-task:append:*']) |
|
assert( |
|
result() === 'baba' || |
|
result() === 'baab' || |
|
result() === 'abab' || |
|
result() === 'abba' |
|
) |
|
}) |
|
}) |
|
|
|
describe('"a" should not match to "test-task:append:a"', () => { |
|
it('Node API', async () => { |
|
try { |
|
await nodeApi('a') |
|
assert(false, 'should not match') |
|
} catch (err) { |
|
assert((/not found/i).test(err.message)) |
|
} |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
const stderr = new BufferStream() |
|
try { |
|
await runAll(['a'], null, stderr) |
|
assert(false, 'should not match') |
|
} catch (_err) { |
|
assert((/not found/i).test(stderr.value)) |
|
} |
|
}) |
|
|
|
it('run-s command', async () => { |
|
const stderr = new BufferStream() |
|
try { |
|
await runSeq(['a'], null, stderr) |
|
assert(false, 'should not match') |
|
} catch (_err) { |
|
assert((/not found/i).test(stderr.value)) |
|
} |
|
}) |
|
|
|
it('run-p command', async () => { |
|
const stderr = new BufferStream() |
|
try { |
|
await runPar(['a'], null, stderr) |
|
assert(false, 'should not match') |
|
} catch (_err) { |
|
assert((/not found/i).test(stderr.value)) |
|
} |
|
}) |
|
}) |
|
|
|
describe('"!test-task:**" should not match to anything', () => { |
|
it('Node API', async () => { |
|
try { |
|
await nodeApi('!test-task:**') |
|
assert(false, 'should not match') |
|
} catch (err) { |
|
assert((/not found/i).test(err.message)) |
|
} |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
const stderr = new BufferStream() |
|
try { |
|
await runAll(['!test-task:**'], null, stderr) |
|
assert(false, 'should not match') |
|
} catch (_err) { |
|
assert((/not found/i).test(stderr.value)) |
|
} |
|
}) |
|
|
|
it('run-s command', async () => { |
|
const stderr = new BufferStream() |
|
try { |
|
await runSeq(['!test-task:**'], null, stderr) |
|
assert(false, 'should not match') |
|
} catch (_err) { |
|
assert((/not found/i).test(stderr.value)) |
|
} |
|
}) |
|
|
|
it('run-p command', async () => { |
|
const stderr = new BufferStream() |
|
try { |
|
await runPar(['!test-task:**'], null, stderr) |
|
assert(false, 'should not match') |
|
} catch (_err) { |
|
assert((/not found/i).test(stderr.value)) |
|
} |
|
}) |
|
}) |
|
|
|
describe('"!test" "?test" to "!test", "?test"', () => { |
|
it('Node API', async () => { |
|
await nodeApi(['!test', '?test']) |
|
assert(result().trim() === 'XQ') |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
await runAll(['!test', '?test']) |
|
assert(result().trim() === 'XQ') |
|
}) |
|
|
|
it('run-s command', async () => { |
|
await runSeq(['!test', '?test']) |
|
assert(result().trim() === 'XQ') |
|
}) |
|
|
|
it('run-p command', async () => { |
|
await runPar(['!test', '?test']) |
|
assert(result().trim() === 'XQ' || result().trim() === 'QX') |
|
}) |
|
}) |
|
})
|
|
|