From fc721704f223a8b649f949af38311c4d567268a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iiro=20J=C3=A4ppinen?= Date: Fri, 1 May 2020 07:06:55 +0300 Subject: [PATCH] fix: chunkFiles chunks normalized files even when maxArgLength is set (#858) The previous commit only fixed the situation when maxArgLength was not set (when used through the Node.js API). --- lib/chunkFiles.js | 2 +- test/chunkFiles.spec.js | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/chunkFiles.js b/lib/chunkFiles.js index ce86e736b..6a935ed1f 100644 --- a/lib/chunkFiles.js +++ b/lib/chunkFiles.js @@ -48,5 +48,5 @@ module.exports = function chunkFiles({ files, baseDir, maxArgLength = null, rela ) const chunkCount = Math.min(Math.ceil(fileListLength / maxArgLength), normalizedFiles.length) debug(`Creating ${chunkCount} chunks for maxArgLength of ${maxArgLength}`) - return chunkArray(files, chunkCount) + return chunkArray(normalizedFiles, chunkCount) } diff --git a/test/chunkFiles.spec.js b/test/chunkFiles.spec.js index 453dd04dd..f9c60dac8 100644 --- a/test/chunkFiles.spec.js +++ b/test/chunkFiles.spec.js @@ -13,13 +13,13 @@ describe('chunkFiles', () => { }) it('should not chunk short argument string', () => { - const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 1000 }) + const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 1000, relative: true }) expect(chunkedFiles).toEqual([files]) }) it('should chunk too long argument string', () => { - const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 20 }) - expect(chunkedFiles).toEqual(files.map((file) => [file])) + const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 20, relative: false }) + expect(chunkedFiles).toEqual(files.map((file) => [normalize(path.resolve(baseDir, file))])) }) it('should take into account relative setting', () => { @@ -30,8 +30,13 @@ describe('chunkFiles', () => { ]) }) - it('should resolve paths when relative: false', () => { - const chunkedFiles = chunkFiles({ baseDir, files, relative: false }) + it('should resolve absolute paths by default', () => { + const chunkedFiles = chunkFiles({ baseDir, files }) + expect(chunkedFiles).toEqual([files.map((file) => normalize(path.resolve(baseDir, file)))]) + }) + + it('should resolve absolute paths by default even when maxArgLength is set', () => { + const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 262144 }) expect(chunkedFiles).toEqual([files.map((file) => normalize(path.resolve(baseDir, file)))]) }) })