Skip to content
This repository was archived by the owner on Dec 5, 2019. It is now read-only.

Commit c67566e

Browse files
refactor: tests (#336)
* refactor: tests * refactor: `extractComments` tests * refactor: ignore some lines to coverage * tests: minify error * refactor: `RequestShortener` * refactor: `sourceMap` tests * refactor: same order for tests * refactor: move `validation` test to own file * refactor: basic test * refactor: more tests * refactor: more tests * refactor: tests * refactor: tests * fix: missing snapshot * test: `error` in `cacheKeys` option * test: invalid source map * style: code
1 parent 77d957a commit c67566e

21 files changed

+3481
-1708
lines changed

src/index.js

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,10 @@ class UglifyJsPlugin {
8080
column: err.col,
8181
});
8282

83-
if (original && original.source) {
83+
if (original && original.source && requestShortener) {
8484
return new Error(`${file} from UglifyJs\n${err.message} [${requestShortener.shorten(original.source)}:${original.line},${original.column}][${file}:${err.line},${err.col}]`);
8585
}
86+
8687
return new Error(`${file} from UglifyJs\n${err.message} [${file}:${err.line},${err.col}]`);
8788
} else if (err.stack) {
8889
return new Error(`${file} from UglifyJs\n${err.stack}`);
@@ -93,33 +94,34 @@ class UglifyJsPlugin {
9394

9495
static buildWarning(warning, file, sourceMap, warningsFilter, requestShortener) {
9596
if (!file || !sourceMap) {
96-
return warning;
97+
return `UglifyJs Plugin: ${warning}`;
9798
}
9899

100+
let warningMessage = warning;
101+
99102
const match = warningRegex.exec(warning);
100-
const line = +match[1];
101-
const column = +match[2];
102-
const original = sourceMap.originalPositionFor({
103-
line,
104-
column,
105-
});
106-
107-
if (!warningsFilter(original.source)) {
108-
return null;
109-
}
110103

111-
let warningMessage = warning.replace(warningRegex, '');
104+
if (match) {
105+
const line = +match[1];
106+
const column = +match[2];
107+
const original = sourceMap.originalPositionFor({
108+
line,
109+
column,
110+
});
111+
112+
if (warningsFilter && !warningsFilter(original.source)) {
113+
return null;
114+
}
112115

113-
if (original && original.source && original.source !== file) {
114-
warningMessage += `[${requestShortener.shorten(original.source)}:${original.line},${original.column}]`;
116+
if (original && original.source && original.source !== file && requestShortener) {
117+
warningMessage = `${warningMessage.replace(warningRegex, '')}[${requestShortener.shorten(original.source)}:${original.line},${original.column}]`;
118+
}
115119
}
116120

117121
return `UglifyJs Plugin: ${warningMessage} in ${file}`;
118122
}
119123

120124
apply(compiler) {
121-
const requestShortener = new RequestShortener(compiler.context);
122-
123125
const buildModuleFn = (moduleArg) => {
124126
// to get detailed location info about errors
125127
moduleArg.useSourceMap = true;
@@ -158,6 +160,7 @@ class UglifyJsPlugin {
158160
inputSourceMap = map;
159161
} else {
160162
inputSourceMap = map;
163+
161164
compilation.warnings.push(
162165
new Error(`${file} contains invalid source map`),
163166
);
@@ -209,7 +212,7 @@ class UglifyJsPlugin {
209212
error,
210213
file,
211214
UglifyJsPlugin.buildSourceMap(inputSourceMap),
212-
requestShortener,
215+
new RequestShortener(compiler.context),
213216
),
214217
);
215218
}
@@ -240,7 +243,7 @@ class UglifyJsPlugin {
240243
error,
241244
file,
242245
sourceMap,
243-
requestShortener,
246+
new RequestShortener(compiler.context),
244247
),
245248
);
246249

@@ -272,7 +275,8 @@ class UglifyJsPlugin {
272275

273276
if (banner) {
274277
outputSource = new ConcatSource(
275-
`/*! ${banner} */\n`, outputSource,
278+
`/*! ${banner} */\n`,
279+
outputSource,
276280
);
277281
}
278282
}
@@ -286,7 +290,9 @@ class UglifyJsPlugin {
286290
compilation.assets[commentsFile].add(commentsSource);
287291
} else {
288292
compilation.assets[commentsFile] = new ConcatSource(
289-
compilation.assets[commentsFile], '\n', commentsSource,
293+
compilation.assets[commentsFile],
294+
'\n',
295+
commentsSource,
290296
);
291297
}
292298
} else {
@@ -305,7 +311,7 @@ class UglifyJsPlugin {
305311
file,
306312
sourceMap,
307313
this.options.warningsFilter,
308-
requestShortener,
314+
new RequestShortener(compiler.context),
309315
);
310316

311317
if (builtWarning) {
@@ -321,6 +327,7 @@ class UglifyJsPlugin {
321327
});
322328
};
323329

330+
/* istanbul ignore if */
324331
if (compiler.hooks) {
325332
const plugin = { name: 'UglifyJSPlugin' };
326333

src/uglify/Runner.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export default class Runner {
2020
}
2121

2222
runTasks(tasks, callback) {
23+
/* istanbul ignore if */
2324
if (!tasks.length) {
2425
callback(null, []);
2526
return;
@@ -33,8 +34,8 @@ export default class Runner {
3334
this.boundWorkers = (options, cb) => {
3435
try {
3536
cb(null, minify(options));
36-
} catch (errors) {
37-
cb(errors);
37+
} catch (error) {
38+
cb(error);
3839
}
3940
};
4041
}

0 commit comments

Comments
 (0)