From ba67f48f5a8314723cbf1d9de08b6a794d4c112b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iiro=20J=C3=A4ppinen?= Date: Wed, 29 Apr 2020 22:06:22 +0300 Subject: [PATCH] fix: normalize chunked paths even when maxArgLength is not set --- lib/chunkFiles.js | 9 +++++---- test/chunkFiles.spec.js | 10 +++++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/chunkFiles.js b/lib/chunkFiles.js index ac3666a04..ce86e736b 100644 --- a/lib/chunkFiles.js +++ b/lib/chunkFiles.js @@ -33,14 +33,15 @@ function chunkArray(arr, chunkCount) { * @returns {Array>} */ module.exports = function chunkFiles({ files, baseDir, maxArgLength = null, relative = false }) { + const normalizedFiles = files.map((file) => + normalize(relative || !baseDir ? file : path.resolve(baseDir, file)) + ) + if (!maxArgLength) { debug('Skip chunking files because of undefined maxArgLength') - return [files] + return [normalizedFiles] // wrap in an array to return a single chunk } - const normalizedFiles = files.map((file) => - normalize(relative || !baseDir ? file : path.resolve(baseDir, file)) - ) const fileListLength = normalizedFiles.join(' ').length debug( `Resolved an argument string length of ${fileListLength} characters from ${normalizedFiles.length} files` diff --git a/test/chunkFiles.spec.js b/test/chunkFiles.spec.js index 25f785649..453dd04dd 100644 --- a/test/chunkFiles.spec.js +++ b/test/chunkFiles.spec.js @@ -1,8 +1,11 @@ +import normalize from 'normalize-path' +import path from 'path' + import chunkFiles from '../lib/chunkFiles' describe('chunkFiles', () => { const files = ['example.js', 'foo.js', 'bar.js', 'foo/bar.js'] - const baseDir = '/opt/git/example.git' + const baseDir = normalize('/opt/git/example.git') it('should default to sane value', () => { const chunkedFiles = chunkFiles({ baseDir, files: ['foo.js'], relative: true }) @@ -26,4 +29,9 @@ describe('chunkFiles', () => { [files[2], files[3]], ]) }) + + it('should resolve paths when relative: false', () => { + const chunkedFiles = chunkFiles({ baseDir, files, relative: false }) + expect(chunkedFiles).toEqual([files.map((file) => normalize(path.resolve(baseDir, file)))]) + }) })