more tests

add none as loglevel
This commit is contained in:
Tobias Koppers 2019-07-22 10:35:26 +02:00
parent 85263af902
commit 7b31890a2f
5 changed files with 92 additions and 21 deletions

View File

@ -304,7 +304,7 @@ export interface WebpackOptions {
/**
* Log level
*/
level?: "error" | "warn" | "info" | "log" | "verbose";
level?: "none" | "error" | "warn" | "info" | "log" | "verbose";
};
/**
* Custom values available in the loader context.
@ -1359,7 +1359,7 @@ export interface StatsOptions {
/**
* add logging output
*/
logging?: boolean | ("error" | "warn" | "info" | "log" | "verbose");
logging?: boolean | ("none" | "error" | "warn" | "info" | "log" | "verbose");
/**
* Include debug logging of specified loggers (i. e. for plugins or loaders). Filters can be Strings, RegExps or Functions
*/

View File

@ -718,6 +718,9 @@ class Stats {
let acceptedTypes;
let collapsedGroups = false;
switch (showLogging) {
case "none":
acceptedTypes = new Set([]);
break;
case "error":
acceptedTypes = new Set([LogType.error]);
break;
@ -763,7 +766,7 @@ class Stats {
let processedLogEntries = logEntries;
if (!debugMode) {
processedLogEntries = processedLogEntries.filter(entry => {
if (acceptedTypes && !acceptedTypes.has(entry.type)) return false;
if (!acceptedTypes.has(entry.type)) return false;
if (!collapsedGroups) {
switch (entry.type) {
case LogType.groupCollapsed:

View File

@ -48,6 +48,7 @@ const filterToFunction = item => {
/**
* @enum {number} */
const LogLevel = {
none: 6,
false: 6,
error: 5,
warn: 4,

View File

@ -1831,7 +1831,7 @@
},
{
"description": "specify log level of logging output",
"enum": ["error", "warn", "info", "log", "verbose"]
"enum": ["none", "error", "warn", "info", "log", "verbose"]
}
]
},
@ -2044,7 +2044,7 @@
},
"level": {
"description": "Log level",
"enum": ["error", "warn", "info", "log", "verbose"]
"enum": ["none", "error", "warn", "info", "log", "verbose"]
}
}
},

View File

@ -542,22 +542,24 @@ describe("Compiler", () => {
delete spies[method];
}
});
it("should log to the console", done => {
class MyPlugin {
apply(compiler) {
const logger = compiler.getInfrastructureLogger("MyPlugin");
logger.group("Group");
logger.error("Error");
logger.warn("Warning");
logger.info("Info");
logger.log("Log");
logger.debug("Debug");
logger.groupCollapsed("Collaped group");
logger.log("Log inside collapsed group");
logger.groupEnd();
logger.groupEnd();
}
class MyPlugin {
apply(compiler) {
const logger = compiler.getInfrastructureLogger("MyPlugin");
logger.time("Time");
logger.group("Group");
logger.error("Error");
logger.warn("Warning");
logger.info("Info");
logger.log("Log");
logger.debug("Debug");
logger.groupCollapsed("Collaped group");
logger.log("Log inside collapsed group");
logger.groupEnd();
logger.groupEnd();
logger.timeEnd("Time");
}
}
it("should log to the console (verbose)", done => {
const compiler = webpack({
context: path.join(__dirname, "fixtures"),
entry: "./a",
@ -584,7 +586,7 @@ describe("Compiler", () => {
expect(spies.warn).toHaveBeenCalledWith("<w> [MyPlugin] Warning");
expect(spies.info).toHaveBeenCalledTimes(1);
expect(spies.info).toHaveBeenCalledWith("<i> [MyPlugin] Info");
expect(spies.log).toHaveBeenCalledTimes(2);
expect(spies.log).toHaveBeenCalledTimes(3);
expect(spies.log).toHaveBeenCalledWith("[MyPlugin] Log");
expect(spies.log).toHaveBeenCalledWith(
"[MyPlugin] Log inside collapsed group"
@ -594,5 +596,70 @@ describe("Compiler", () => {
done();
});
});
it("should log to the console (debug mode)", done => {
const compiler = webpack({
context: path.join(__dirname, "fixtures"),
entry: "./a",
output: {
path: "/",
filename: "bundle.js"
},
infrastructureLogging: {
level: "error",
debug: /MyPlugin/
},
plugins: [new MyPlugin()]
});
compiler.outputFileSystem = new MemoryFs();
compiler.run((err, stats) => {
expect(spies.group).toHaveBeenCalledTimes(1);
expect(spies.group).toHaveBeenCalledWith("[MyPlugin] Group");
expect(spies.groupCollapsed).toHaveBeenCalledTimes(1);
expect(spies.groupCollapsed).toHaveBeenCalledWith(
"[MyPlugin] Collaped group"
);
expect(spies.error).toHaveBeenCalledTimes(1);
expect(spies.error).toHaveBeenCalledWith("<e> [MyPlugin] Error");
expect(spies.warn).toHaveBeenCalledTimes(1);
expect(spies.warn).toHaveBeenCalledWith("<w> [MyPlugin] Warning");
expect(spies.info).toHaveBeenCalledTimes(1);
expect(spies.info).toHaveBeenCalledWith("<i> [MyPlugin] Info");
expect(spies.log).toHaveBeenCalledTimes(3);
expect(spies.log).toHaveBeenCalledWith("[MyPlugin] Log");
expect(spies.log).toHaveBeenCalledWith(
"[MyPlugin] Log inside collapsed group"
);
expect(spies.debug).toHaveBeenCalledTimes(1);
expect(spies.debug).toHaveBeenCalledWith("[MyPlugin] Debug");
expect(spies.groupEnd).toHaveBeenCalledTimes(2);
done();
});
});
it("should log to the console (none)", done => {
const compiler = webpack({
context: path.join(__dirname, "fixtures"),
entry: "./a",
output: {
path: "/",
filename: "bundle.js"
},
infrastructureLogging: {
level: "none"
},
plugins: [new MyPlugin()]
});
compiler.outputFileSystem = new MemoryFs();
compiler.run((err, stats) => {
expect(spies.group).toHaveBeenCalledTimes(0);
expect(spies.groupCollapsed).toHaveBeenCalledTimes(0);
expect(spies.error).toHaveBeenCalledTimes(0);
expect(spies.warn).toHaveBeenCalledTimes(0);
expect(spies.info).toHaveBeenCalledTimes(0);
expect(spies.log).toHaveBeenCalledTimes(0);
expect(spies.debug).toHaveBeenCalledTimes(0);
expect(spies.groupEnd).toHaveBeenCalledTimes(0);
done();
});
});
});
});