|
3 | 3 | const VError = require("verror"); |
4 | 4 | const featureTogglesModule = require("../src/featureToggles"); |
5 | 5 | const { FeatureToggles } = featureTogglesModule; |
6 | | -const { FORMAT, Logger } = require("../src/logger"); |
| 6 | +const { ENV } = require("../src/shared/static"); |
| 7 | +const { LEVEL, FORMAT, Logger } = require("../src/logger"); |
7 | 8 |
|
8 | 9 | const redisWrapperMock = require("../src/redisWrapper"); |
9 | 10 | jest.mock("../src/redisWrapper", () => require("./__mocks__/redisWrapper")); |
@@ -57,6 +58,7 @@ let layer = "/test"; |
57 | 58 |
|
58 | 59 | describe("logger test", () => { |
59 | 60 | beforeEach(() => { |
| 61 | + Logger._reset(); |
60 | 62 | redisWrapperMock._reset(); |
61 | 63 | envMock._reset(); |
62 | 64 | featureToggles = new FeatureToggles({ redisKey, redisChannel, refreshMessage }); |
@@ -181,6 +183,54 @@ caused by: Error: bad validator |
181 | 183 | expect(processStreamSpy.stdout.mock.calls.length).toBe(1); |
182 | 184 | }); |
183 | 185 |
|
| 186 | + it("make sure env log level WARN is respected", async () => { |
| 187 | + process.env[ENV.LOG_LEVEL] = " warn "; |
| 188 | + logger = new Logger(layer, { maxLevel: LEVEL.TRACE }); |
| 189 | + logger.trace("some trace"); |
| 190 | + logger.debug("some debug"); |
| 191 | + logger.info("some info"); |
| 192 | + expect(processStreamSpy.stdout.mock.calls.length).toBe(0); |
| 193 | + expect(processStreamSpy.stderr.mock.calls.length).toBe(0); |
| 194 | + logger.warning("some warning"); |
| 195 | + expect(processStreamSpy.stdout.mock.calls.map(cleanupTextLogCalls)[0]).toMatchInlineSnapshot(` |
| 196 | +[ |
| 197 | + "88:88:88.888 | WARN | /test | some warning", |
| 198 | +] |
| 199 | +`); |
| 200 | + expect(processStreamSpy.stdout.mock.calls.length).toBe(1); |
| 201 | + expect(processStreamSpy.stderr.mock.calls.length).toBe(0); |
| 202 | + processStreamSpy.stdout.mockClear(); |
| 203 | + logger.error("some error"); |
| 204 | + expect(processStreamSpy.stderr.mock.calls.map(cleanupTextLogCalls)[0]).toMatchInlineSnapshot(` |
| 205 | +[ |
| 206 | + "88:88:88.888 | ERROR | /test | some error", |
| 207 | +] |
| 208 | +`); |
| 209 | + expect(processStreamSpy.stdout.mock.calls.length).toBe(0); |
| 210 | + expect(processStreamSpy.stderr.mock.calls.length).toBe(1); |
| 211 | + Reflect.deleteProperty(process.env, ENV.LOG_LEVEL); |
| 212 | + }); |
| 213 | + |
| 214 | + it("make sure env log level ERROR is respected", async () => { |
| 215 | + process.env[ENV.LOG_LEVEL] = " err "; |
| 216 | + logger = new Logger(layer, { maxLevel: LEVEL.TRACE }); |
| 217 | + logger.trace("some trace"); |
| 218 | + logger.debug("some debug"); |
| 219 | + logger.info("some info"); |
| 220 | + logger.warning("some warning"); |
| 221 | + expect(processStreamSpy.stdout.mock.calls.length).toBe(0); |
| 222 | + expect(processStreamSpy.stderr.mock.calls.length).toBe(0); |
| 223 | + logger.error("some error"); |
| 224 | + expect(processStreamSpy.stderr.mock.calls.map(cleanupTextLogCalls)[0]).toMatchInlineSnapshot(` |
| 225 | +[ |
| 226 | + "88:88:88.888 | ERROR | /test | some error", |
| 227 | +] |
| 228 | +`); |
| 229 | + expect(processStreamSpy.stdout.mock.calls.length).toBe(0); |
| 230 | + expect(processStreamSpy.stderr.mock.calls.length).toBe(1); |
| 231 | + Reflect.deleteProperty(process.env, ENV.LOG_LEVEL); |
| 232 | + }); |
| 233 | + |
184 | 234 | it("error basic usage", async () => { |
185 | 235 | logger = new Logger(layer, { format: FORMAT.JSON }); |
186 | 236 | logger.error(new VError("bla error")); |
|
0 commit comments