From 704ac79eb23d1a6d70243fd7f0890fbb113b3ac2 Mon Sep 17 00:00:00 2001 From: Pierre Vanduynslager Date: Sun, 26 Aug 2018 17:41:05 -0400 Subject: [PATCH] fix: deduplicate glob results by resolved path --- lib/glob-assets.js | 2 +- test/glob-assets.test.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/glob-assets.js b/lib/glob-assets.js index e9adfefe..f4020003 100644 --- a/lib/glob-assets.js +++ b/lib/glob-assets.js @@ -67,5 +67,5 @@ module.exports = async ({cwd}, assets) => ) .sort(asset => !isPlainObject(asset)), // Compare `path` property if Object definition, value itself if String - (a, b) => (isPlainObject(a) ? a.path : a) === (isPlainObject(b) ? b.path : b) + (a, b) => path.resolve(cwd, isPlainObject(a) ? a.path : a) === path.resolve(cwd, isPlainObject(b) ? b.path : b) ); diff --git a/test/glob-assets.test.js b/test/glob-assets.test.js index 7e4c4b47..403bb9b0 100644 --- a/test/glob-assets.test.js +++ b/test/glob-assets.test.js @@ -183,3 +183,11 @@ test('Include empty directory as defined', async t => { t.deepEqual(globbedAssets, ['empty']); }); + +test('Deduplicate resulting files path', async t => { + const cwd = tempy.directory(); + await copy(fixtures, cwd); + const globbedAssets = await globAssets({cwd}, ['./upload.txt', path.resolve(cwd, 'upload.txt'), 'upload.txt']); + + t.deepEqual(globbedAssets, ['upload.txt']); +});