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.
224 lines
7.1 KiB
224 lines
7.1 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 util = require('./lib/util') |
|
const runAll = util.runAll |
|
const runPar = util.runPar |
|
const runSeq = util.runSeq |
|
|
|
// ------------------------------------------------------------------------------ |
|
// Test |
|
// ------------------------------------------------------------------------------ |
|
|
|
describe('[print-label] npm-run-all', () => { |
|
before(() => process.chdir('test-workspace')) |
|
after(() => process.chdir('..')) |
|
|
|
describe('should print labels at the head of every line:', () => { |
|
const EXPECTED_TEXT = [ |
|
'[test-task:echo abc] abcabc', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] abcabc', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] ', |
|
'[test-task:echo abc] abc', |
|
'[test-task:echo abc] abcabc', |
|
'[test-task:echo abc] ', |
|
'[test-task:echo abc] ', |
|
'[test-task:echo abc] ', |
|
'[test-task:echo abc] abc', |
|
].join('\n') |
|
|
|
it('Node API', async () => { |
|
const stdout = new BufferStream() |
|
await nodeApi('test-task:echo abc', { stdout, silent: true, printLabel: true }) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('npm-run-all command (--print-label)', async () => { |
|
const stdout = new BufferStream() |
|
await runAll(['test-task:echo abc', '--silent', '--print-label'], stdout) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('run-s command (--print-label)', async () => { |
|
const stdout = new BufferStream() |
|
await runSeq(['test-task:echo abc', '--silent', '--print-label'], stdout) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('run-p command (--print-label)', async () => { |
|
const stdout = new BufferStream() |
|
await runPar(['test-task:echo abc', '--silent', '--print-label'], stdout) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('npm-run-all command (-l)', async () => { |
|
const stdout = new BufferStream() |
|
await runAll(['test-task:echo abc', '--silent', '-l'], stdout) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('run-s command (-l)', async () => { |
|
const stdout = new BufferStream() |
|
await runSeq(['test-task:echo abc', '--silent', '-l'], stdout) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('run-p command (-l)', async () => { |
|
const stdout = new BufferStream() |
|
await runPar(['test-task:echo abc', '--silent', '-l'], stdout) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
}) |
|
|
|
describe('should print all labels with the same width:', () => { |
|
const EXPECTED_TEXT = [ |
|
'[test-task:echo a ] aa', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] aa', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] ', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo a ] aa', |
|
'[test-task:echo a ] ', |
|
'[test-task:echo a ] ', |
|
'[test-task:echo a ] ', |
|
'[test-task:echo a ] a', |
|
'[test-task:echo abcd] abcdabcd', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] abcdabcd', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] ', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo abcd] abcdabcd', |
|
'[test-task:echo abcd] ', |
|
'[test-task:echo abcd] ', |
|
'[test-task:echo abcd] ', |
|
'[test-task:echo abcd] abcd', |
|
'[test-task:echo ab ] abab', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] abab', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] ', |
|
'[test-task:echo ab ] ab', |
|
'[test-task:echo ab ] abab', |
|
'[test-task:echo ab ] ', |
|
'[test-task:echo ab ] ', |
|
'[test-task:echo ab ] ', |
|
'[test-task:echo ab ] ab', |
|
].join('\n') |
|
|
|
it('Node API', async () => { |
|
const stdout = new BufferStream() |
|
await nodeApi( |
|
['test-task:echo a', 'test-task:echo abcd', 'test-task:echo ab'], |
|
{ stdout, silent: true, printLabel: true } |
|
) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
const stdout = new BufferStream() |
|
await runAll( |
|
['test-task:echo a', 'test-task:echo abcd', 'test-task:echo ab', '--silent', '--print-label'], |
|
stdout |
|
) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
|
|
it('run-s command', async () => { |
|
const stdout = new BufferStream() |
|
await runSeq( |
|
['test-task:echo a', 'test-task:echo abcd', 'test-task:echo ab', '--silent', '--print-label'], |
|
stdout |
|
) |
|
assert.equal(stdout.value, EXPECTED_TEXT) |
|
}) |
|
}) |
|
|
|
describe('should work printing labels in parallel:', () => { |
|
const EXPECTED_LINES = [ |
|
'\n[test-task:echo a ] ', |
|
'\n[test-task:echo a ] a', |
|
'\n[test-task:echo ab ] ', |
|
'\n[test-task:echo ab ] ab', |
|
'\n[test-task:echo abcd] ', |
|
'\n[test-task:echo abcd] abcd', |
|
] |
|
const UNEXPECTED_PATTERNS = [ |
|
/aab(cd)?/, |
|
/ab(cd)?a\b/, |
|
/\n\n/, |
|
] |
|
|
|
it('Node API', async () => { |
|
const stdout = new BufferStream() |
|
await nodeApi( |
|
['test-task:echo a', 'test-task:echo abcd', 'test-task:echo ab'], |
|
{ stdout, parallel: true, printLabel: true } |
|
) |
|
for (const line of EXPECTED_LINES) { |
|
assert(stdout.value.indexOf(line) !== -1) |
|
} |
|
for (const pattern of UNEXPECTED_PATTERNS) { |
|
assert(!pattern.test(stdout.value)) |
|
} |
|
}) |
|
|
|
it('npm-run-all command', async () => { |
|
const stdout = new BufferStream() |
|
await runAll( |
|
['--parallel', 'test-task:echo a', 'test-task:echo abcd', 'test-task:echo ab', '--print-label'], |
|
stdout |
|
) |
|
for (const line of EXPECTED_LINES) { |
|
assert(stdout.value.indexOf(line) !== -1) |
|
} |
|
for (const pattern of UNEXPECTED_PATTERNS) { |
|
assert(!pattern.test(stdout.value)) |
|
} |
|
}) |
|
|
|
it('run-p command', async () => { |
|
const stdout = new BufferStream() |
|
await runPar( |
|
['test-task:echo a', 'test-task:echo abcd', 'test-task:echo ab', '--print-label'], |
|
stdout |
|
) |
|
for (const line of EXPECTED_LINES) { |
|
assert(stdout.value.indexOf(line) !== -1) |
|
} |
|
for (const pattern of UNEXPECTED_PATTERNS) { |
|
assert(!pattern.test(stdout.value)) |
|
} |
|
}) |
|
}) |
|
})
|
|
|