From 99ceb1670ce028756896b664b4fc3387bb41fa68 Mon Sep 17 00:00:00 2001 From: Adam Ginzberg Date: Fri, 1 Mar 2019 12:25:50 -0800 Subject: [PATCH] closes #3727 Fixes support for multiple node flags --- lib/cli/node-flags.js | 1 + test/node-unit/cli/node-flags.spec.js | 48 ++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/lib/cli/node-flags.js b/lib/cli/node-flags.js index feb5fb4770..feffaa93e2 100644 --- a/lib/cli/node-flags.js +++ b/lib/cli/node-flags.js @@ -81,5 +81,6 @@ exports.unparseNodeFlags = opts => { .split(/\b/) .map(arg => (arg === ' ' ? '=' : arg)) .join('') + .split(' ') : []; }; diff --git a/test/node-unit/cli/node-flags.spec.js b/test/node-unit/cli/node-flags.spec.js index b118d5d5e6..a66a17e4a2 100644 --- a/test/node-unit/cli/node-flags.spec.js +++ b/test/node-unit/cli/node-flags.spec.js @@ -1,7 +1,11 @@ 'use strict'; const nodeEnvFlags = require('node-environment-flags'); -const {isNodeFlag, impliesNoTimeouts} = require('../../../lib/cli/node-flags'); +const { + isNodeFlag, + impliesNoTimeouts, + unparseNodeFlags +} = require('../../../lib/cli/node-flags'); describe('node-flags', function() { describe('isNodeFlag()', function() { @@ -86,4 +90,46 @@ describe('node-flags', function() { expect(impliesNoTimeouts('inspect-brk'), 'to be true'); }); }); + + describe('unparseNodeFlags()', function() { + it('should handle single v8 flags', function() { + expect(unparseNodeFlags({'v8-numeric': 100}), 'to equal', [ + '--v8-numeric=100' + ]); + expect(unparseNodeFlags({'v8-boolean': true}), 'to equal', [ + '--v8-boolean' + ]); + }); + + it('should handle multiple v8 flags', function() { + expect( + unparseNodeFlags({'v8-numeric-one': 1, 'v8-numeric-two': 2}), + 'to equal', + ['--v8-numeric-one=1', '--v8-numeric-two=2'] + ); + expect( + unparseNodeFlags({'v8-boolean-one': true, 'v8-boolean-two': true}), + 'to equal', + ['--v8-boolean-one', '--v8-boolean-two'] + ); + expect( + unparseNodeFlags({ + 'v8-boolean-one': true, + 'v8-numeric-one': 1, + 'v8-boolean-two': true + }), + 'to equal', + ['--v8-boolean-one', '--v8-numeric-one=1', '--v8-boolean-two'] + ); + expect( + unparseNodeFlags({ + 'v8-numeric-one': 1, + 'v8-boolean-one': true, + 'v8-numeric-two': 2 + }), + 'to equal', + ['--v8-numeric-one=1', '--v8-boolean-one', '--v8-numeric-two=2'] + ); + }); + }); });