From 51cc9b1d8d12e30279cefc8f9b13ad7ad5802890 Mon Sep 17 00:00:00 2001 From: MDLeom <43627182+curbengh@users.noreply.github.com> Date: Sat, 5 Sep 2020 11:58:20 +0000 Subject: [PATCH] feat: show path that caused the error --- lib/filter.js | 16 ++++++++-------- test/css.test.js | 4 ++-- test/gzip.test.js | 4 ++-- test/html.test.js | 2 +- test/js.test.js | 10 +++++----- test/json.test.js | 2 +- test/svg.test.js | 2 +- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lib/filter.js b/lib/filter.js index 0ce22aa..c41f46b 100644 --- a/lib/filter.js +++ b/lib/filter.js @@ -76,7 +76,7 @@ function minifyHtml (str, data) { return result } catch (err) { - throw new Error(err) + throw new Error(`Path: ${path}\n${err}`) } } @@ -95,7 +95,7 @@ async function minifyCss (str, data) { if (verbose) logFn.call(this, str, styles, path, 'css') return styles } catch (err) { - throw new Error(err) + throw new Error(`Path: ${path}\n${err}`) } } @@ -124,7 +124,7 @@ async function minifyJs (str, data) { if (verbose) logFn.call(this, str, code, path, 'js') return code } catch (err) { - throw new Error(err) + throw new Error(`Path: ${path}\n${err}`) } } @@ -149,7 +149,7 @@ function minifySvg () { if (verbose) logFn.call(this, assetTxt, data, path, 'svg') resolve(route.set(path, data)) } catch (err) { - reject(new Error(err)) + reject(new Error(`Path: ${path}\n${err}`)) } } resolve() @@ -181,7 +181,7 @@ function gzipFn () { if (verbose) logFn.call(this, assetTxt, result, path, 'gzip') resolve(route.set(path + '.gz', result)) } catch (err) { - reject(new Error(err)) + reject(new Error(`Path: ${path}\n${err}`)) } } resolve() @@ -213,7 +213,7 @@ function brotliFn () { if (verbose) logFn.call(this, assetTxt, result, path, 'brotli') resolve(route.set(path + '.br', result)) } catch (err) { - reject(new Error(err)) + reject(new Error(`Path: ${path}\n${err}`)) } } resolve() @@ -243,7 +243,7 @@ function minifyXml () { if (verbose) logFn.call(this, assetTxt, result, path, 'xml') resolve(route.set(path, result)) } catch (err) { - reject(new Error(err)) + reject(new Error(`Path: ${path}\n${err}`)) } } resolve() @@ -273,7 +273,7 @@ function minifyJson () { if (verbose) logFn.call(this, assetTxt, result, path, 'json') resolve(route.set(path, result)) } catch (err) { - reject(new Error(err)) + reject(new Error(`Path: ${path}\n${err}`)) } } resolve() diff --git a/test/css.test.js b/test/css.test.js index a876ee4..e30dd70 100644 --- a/test/css.test.js +++ b/test/css.test.js @@ -76,11 +76,11 @@ describe('css', () => { try { await new CleanCSS(customOpt).minify(input) } catch (err) { - expected = err.message + expected = err } expect(expected).toBeDefined() - await expect(c(input, { path })).rejects.toThrow(expected) + await expect(c(input, { path })).rejects.toThrow(`Path: ${path}\n${expected}`) }) test('exclude - *.min.css', async () => { diff --git a/test/gzip.test.js b/test/gzip.test.js index 027ef80..606953c 100644 --- a/test/gzip.test.js +++ b/test/gzip.test.js @@ -103,10 +103,10 @@ describe('gzip', () => { try { await gzip(input, customOpt) } catch (err) { - expected = err.message + expected = err } expect(expected).toBeDefined() - await expect(g()).rejects.toThrow(expected) + await expect(g()).rejects.toThrow(`Path: ${path}\n${expected}`) }) test('include - exclude non-text file by default', async () => { diff --git a/test/html.test.js b/test/html.test.js index 98a6365..3b48989 100644 --- a/test/html.test.js +++ b/test/html.test.js @@ -125,6 +125,6 @@ describe('html', () => { expect(() => { h(invalid, { path }) - }).toThrow('Parse Error') + }).toThrow(`Path: ${path}\nError: Parse Error`) }) }) diff --git a/test/js.test.js b/test/js.test.js index 0dff3bd..706072c 100644 --- a/test/js.test.js +++ b/test/js.test.js @@ -82,15 +82,15 @@ describe('js', () => { } hexo.config.minify.js = customOpt - let error + let expected try { await terserMinify(input, customOpt) } catch (err) { - error = err.message + expected = err } - expect(error).toBeDefined() - await expect(j(input, { path })).rejects.toThrow(error) + expect(expected).toBeDefined() + await expect(j(input, { path })).rejects.toThrow(`Path: ${path}\n${expected}`) }) test('exclude - *.min.js', async () => { @@ -118,6 +118,6 @@ describe('js', () => { test('invalid string', async () => { const invalid = 'console.log("\\");' - await expect(j(invalid, { path })).rejects.toThrow('SyntaxError') + await expect(j(invalid, { path })).rejects.toThrow(`Path: ${path}\nSyntaxError`) }) }) diff --git a/test/json.test.js b/test/json.test.js index 15a4309..5228083 100644 --- a/test/json.test.js +++ b/test/json.test.js @@ -57,7 +57,7 @@ describe('xml', () => { test('invalid input', async () => { hexo.route.set(path, 'foo') - await expect(jsonFn()).rejects.toThrow(/SyntaxError/) + await expect(jsonFn()).rejects.toThrow(`Path: ${path}\nSyntaxError`) }) test('empty file', async () => { diff --git a/test/svg.test.js b/test/svg.test.js index 8bd75ed..218843c 100644 --- a/test/svg.test.js +++ b/test/svg.test.js @@ -89,7 +89,7 @@ describe('svg', () => { expected = err } expect(expected).toBeDefined() - await expect(s()).rejects.toThrow(expected) + await expect(s()).rejects.toThrow(`Path: ${path}\n${expected}`) }) test('include - exclude *.min.svg by default', async () => {