HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/1526/cwd/tana/frontend/node_modules/concurrently/test/test-parseCmds.js
'use strict';
const assert = require('assert');
const sinon = require('sinon');

const parseCmds = require('../src/parseCmds');

const sandbox = sinon.createSandbox();

describe('parseCmds', () => {

    afterEach(() => {
        sandbox.restore();
    });

    it('returns a list of command objects', () => {
        const cmds = parseCmds([ 'echo test' ]);

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'echo test',
                name: '',
                color: undefined
            }
        ]);
    });

    it('strips quotes', () => {
        const cmds = parseCmds([ '"echo test"' ]);

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'echo test',
                name: '',
                color: undefined
            }
        ]);
    });

    it('assigns names', () => {
        const cmds = parseCmds([ 'echo test', 'echo test2' ], {
            names: 'echo-test,echo-test2'
        });

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'echo test',
                name: 'echo-test',
                color: undefined
            },
            {
                cmd: 'echo test2',
                name: 'echo-test2',
                color: undefined
            }
        ]);
    });

    it('assigns names with custom separator', () => {
        const cmds = parseCmds([ 'echo test', 'echo test2' ], {
            names: 'echo-test|echo-test2',
            nameSeparator: '|'
        });

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'echo test',
                name: 'echo-test',
                color: undefined
            },
            {
                cmd: 'echo test2',
                name: 'echo-test2',
                color: undefined
            }
        ]);
    });

    it('assigns colours', () => {
        const cmds = parseCmds([ 'echo test', 'echo test2' ], {
            prefixColors: 'blue'
        });

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'echo test',
                name: '',
                color: 'blue'
            },
            {
                cmd: 'echo test2',
                name: '',
                color: undefined
            }
        ]);
    });

    it('expands npm: shortcut', () => {
        const cmds = parseCmds([ 'npm:watch:js' ]);

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'npm run watch:js',
                name: 'watch:js',
                color: undefined
            }
        ]);
    });

    it('expands npm: shortcut with assigned name', () => {
        const cmds = parseCmds([ 'npm:watch:js' ], {
            names: 'js'
        });

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'npm run watch:js',
                name: 'js',
                color: undefined
            }
        ]);
    });

    it('expands npm: shortcut with wildcard', () => {
        sandbox.stub(require('../src/pkgInfo'), 'getScripts').returns([
            'test', 'start', 'watch:js', 'watch:css', 'watch:node'
        ]);

        const cmds = parseCmds([ 'npm:watch:*' ]);

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'npm run watch:js',
                name: 'js',
                color: undefined
            },
            {
                cmd: 'npm run watch:css',
                name: 'css',
                color: undefined
            },
            {
                cmd: 'npm run watch:node',
                name: 'node',
                color: undefined
            }
        ]);
    });

    it('expands npm: shortcut with wildcard and name prefix', () => {
        sandbox.stub(require('../src/pkgInfo'), 'getScripts').returns([
            'test', 'start', 'watch:js', 'watch:css', 'watch:node'
        ]);

        const cmds = parseCmds([ 'npm:watch:*' ], {
            names: 'w:'
        });

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'npm run watch:js',
                name: 'w:js',
                color: undefined
            },
            {
                cmd: 'npm run watch:css',
                name: 'w:css',
                color: undefined
            },
            {
                cmd: 'npm run watch:node',
                name: 'w:node',
                color: undefined
            }
        ]);
    });

    it('applies prefix colors to expanded commands', () => {
        sandbox.stub(require('../src/pkgInfo'), 'getScripts').returns([
            'test', 'start', 'watch:js', 'watch:css', 'watch:node'
        ]);

        const cmds = parseCmds([ 'npm:watch:*' ], {
            prefixColors: 'blue,magenta,cyan'
        });

        assert.deepStrictEqual(cmds, [
            {
                cmd: 'npm run watch:js',
                name: 'js',
                color: 'blue'
            },
            {
                cmd: 'npm run watch:css',
                name: 'css',
                color: 'magenta'
            },
            {
                cmd: 'npm run watch:node',
                name: 'node',
                color: 'cyan'
            }
        ]);
    });
});