kayvee 3.16.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +124 -0
- package/.github/workflows/notify-ci-status.yml +20 -0
- package/.nvmrc +1 -1
- package/.prettierrc.json +1 -0
- package/Makefile +20 -4
- package/build/lib/kayvee.js +13 -17
- package/build/lib/logger/logger.js +84 -76
- package/build/lib/middleware.js +62 -89
- package/build/lib/router/index.js +61 -63
- package/build/package.json +16 -8
- package/build/test/context_logger.js +36 -44
- package/build/test/kayvee.js +16 -16
- package/build/test/logger_test.js +113 -102
- package/build/test/middleware.js +90 -235
- package/build/test/router.js +238 -94
- package/lib/kayvee.ts +19 -7
- package/lib/logger/logger.ts +101 -47
- package/lib/middleware.ts +31 -31
- package/lib/router/index.ts +18 -13
- package/package.json +16 -8
- package/test/context_logger.ts +7 -7
- package/test/kayvee.ts +16 -7
- package/test/logger_test.ts +24 -27
- package/test/middleware.ts +88 -222
- package/test/router.ts +247 -176
- package/tsconfig.json +1 -1
- package/.eslintrc.yml +0 -47
- package/tsd.json +0 -15
- package/tslint.json +0 -134
- package/typings/globals/es6-shim/index.d.ts +0 -666
- package/typings/globals/es6-shim/typings.json +0 -8
- package/typings/index.d.ts +0 -1
- package/typings/mocha/mocha.d.ts +0 -236
- package/typings/node/node.d.ts +0 -2340
- package/typings/tsd.d.ts +0 -2
- package/typings.json +0 -5
|
@@ -2,27 +2,27 @@ var assert = require("assert");
|
|
|
2
2
|
var sinon = require("sinon");
|
|
3
3
|
var middleware = require("../lib/middleware");
|
|
4
4
|
var KayveeLogger = require("../lib/logger/logger");
|
|
5
|
-
describe("ContextLogger",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
it(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
stub_logger[
|
|
13
|
-
|
|
5
|
+
describe("ContextLogger", () => {
|
|
6
|
+
const fake_req = { key1: "val1" };
|
|
7
|
+
const fake_handler = (req) => ({ log_key1: req.key1, key2: "val2" });
|
|
8
|
+
for (const level of KayveeLogger.LEVELS) {
|
|
9
|
+
it(`correctly adds context to ${level} calls`, () => {
|
|
10
|
+
const spy = sinon.spy();
|
|
11
|
+
const stub_logger = {};
|
|
12
|
+
stub_logger[`${level}D`] = spy;
|
|
13
|
+
const log = new middleware.ContextLogger(stub_logger, [fake_handler], fake_req);
|
|
14
14
|
log[level]("test_title");
|
|
15
|
-
|
|
15
|
+
const expected_context = { log_key1: "val1", key2: "val2" };
|
|
16
16
|
assert(spy.calledWithExactly("test_title", expected_context));
|
|
17
17
|
assert.equal(spy.callCount, 1);
|
|
18
18
|
});
|
|
19
|
-
it(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
stub_logger[
|
|
23
|
-
|
|
24
|
-
log[
|
|
25
|
-
|
|
19
|
+
it(`correctly adds context to ${level}D calls`, () => {
|
|
20
|
+
const spy = sinon.spy();
|
|
21
|
+
const stub_logger = {};
|
|
22
|
+
stub_logger[`${level}D`] = spy;
|
|
23
|
+
const log = new middleware.ContextLogger(stub_logger, [fake_handler], fake_req);
|
|
24
|
+
log[`${level}D`]("test_title", { key2: "new_value", key3: "val3" });
|
|
25
|
+
const expected_data = {
|
|
26
26
|
log_key1: "val1",
|
|
27
27
|
key2: "new_value",
|
|
28
28
|
key3: "val3",
|
|
@@ -30,29 +30,25 @@ describe("ContextLogger", function () {
|
|
|
30
30
|
assert(spy.calledWithExactly("test_title", expected_data));
|
|
31
31
|
assert.equal(spy.callCount, 1);
|
|
32
32
|
});
|
|
33
|
-
};
|
|
34
|
-
for (var _i = 0, _a = KayveeLogger.LEVELS; _i < _a.length; _i++) {
|
|
35
|
-
var level = _a[_i];
|
|
36
|
-
_loop_1(level);
|
|
37
33
|
}
|
|
38
|
-
|
|
39
|
-
it(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
stub_logger[
|
|
43
|
-
|
|
34
|
+
for (const metric of KayveeLogger.METRICS) {
|
|
35
|
+
it(`correctly adds context to ${metric} calls`, () => {
|
|
36
|
+
const spy = sinon.spy();
|
|
37
|
+
const stub_logger = {};
|
|
38
|
+
stub_logger[`${metric}D`] = spy;
|
|
39
|
+
const log = new middleware.ContextLogger(stub_logger, [fake_handler], fake_req);
|
|
44
40
|
log[metric]("test_title", 3);
|
|
45
|
-
|
|
41
|
+
const expected_context = { log_key1: "val1", key2: "val2" };
|
|
46
42
|
assert(spy.calledWithExactly("test_title", 3, expected_context));
|
|
47
43
|
assert.equal(spy.callCount, 1);
|
|
48
44
|
});
|
|
49
|
-
it(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
stub_logger[
|
|
53
|
-
|
|
54
|
-
log[
|
|
55
|
-
|
|
45
|
+
it(`correctly adds context to ${metric}D calls`, () => {
|
|
46
|
+
const spy = sinon.spy();
|
|
47
|
+
const stub_logger = {};
|
|
48
|
+
stub_logger[`${metric}D`] = spy;
|
|
49
|
+
const log = new middleware.ContextLogger(stub_logger, [fake_handler], fake_req);
|
|
50
|
+
log[`${metric}D`]("test_title", 3, { key2: "new_value", key3: "val3" });
|
|
51
|
+
const expected_data = {
|
|
56
52
|
log_key1: "val1",
|
|
57
53
|
key2: "new_value",
|
|
58
54
|
key3: "val3",
|
|
@@ -60,17 +56,13 @@ describe("ContextLogger", function () {
|
|
|
60
56
|
assert(spy.calledWithExactly("test_title", 3, expected_data));
|
|
61
57
|
assert.equal(spy.callCount, 1);
|
|
62
58
|
});
|
|
63
|
-
};
|
|
64
|
-
for (var _b = 0, _c = KayveeLogger.METRICS; _b < _c.length; _b++) {
|
|
65
|
-
var metric = _c[_b];
|
|
66
|
-
_loop_2(metric);
|
|
67
59
|
}
|
|
68
|
-
it("correctly handles being instantiated with empty list of handlers",
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
60
|
+
it("correctly handles being instantiated with empty list of handlers", () => {
|
|
61
|
+
const spy = sinon.spy();
|
|
62
|
+
const stub_logger = { infoD: spy };
|
|
63
|
+
const log = new middleware.ContextLogger(stub_logger, [], fake_req);
|
|
72
64
|
log.info("test_title");
|
|
73
|
-
|
|
65
|
+
const expected_context = {};
|
|
74
66
|
assert(spy.calledWithExactly("test_title", expected_context));
|
|
75
67
|
assert.equal(spy.callCount, 1);
|
|
76
68
|
});
|
package/build/test/kayvee.js
CHANGED
|
@@ -2,21 +2,21 @@ var kv = require("../lib/kayvee");
|
|
|
2
2
|
var assert = require("assert");
|
|
3
3
|
var _ = require("underscore");
|
|
4
4
|
var fs = require("fs");
|
|
5
|
-
describe("kayvee",
|
|
6
|
-
|
|
7
|
-
describe(".format",
|
|
8
|
-
_.each(tests.format,
|
|
9
|
-
it(spec.title,
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
describe("kayvee", () => {
|
|
6
|
+
const tests = JSON.parse(fs.readFileSync("test/tests.json"));
|
|
7
|
+
describe(".format", () => {
|
|
8
|
+
_.each(tests.format, (spec) => {
|
|
9
|
+
it(spec.title, () => {
|
|
10
|
+
const actual = kv.format(spec.input.data);
|
|
11
|
+
const expected = spec.output;
|
|
12
12
|
assert.deepEqual(JSON.parse(actual), _.extend({ deploy_env: "testing", wf_id: "abc" }, JSON.parse(expected)));
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
15
|
});
|
|
16
|
-
describe(".format with Errors",
|
|
17
|
-
it("encodes Error objects",
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
describe(".format with Errors", () => {
|
|
17
|
+
it("encodes Error objects", () => {
|
|
18
|
+
const actual = kv.format({ err: Error("An Error Message") });
|
|
19
|
+
const expected = {
|
|
20
20
|
deploy_env: "testing",
|
|
21
21
|
wf_id: "abc",
|
|
22
22
|
err: "Error: An Error Message",
|
|
@@ -24,11 +24,11 @@ describe("kayvee", function () {
|
|
|
24
24
|
assert.deepEqual(JSON.parse(actual), expected);
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
|
-
describe(".formatLog",
|
|
28
|
-
_.each(tests.formatLog,
|
|
29
|
-
it(spec.title,
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
describe(".formatLog", () => {
|
|
28
|
+
_.each(tests.formatLog, (spec) => {
|
|
29
|
+
it(spec.title, () => {
|
|
30
|
+
const actual = kv.formatLog(spec.input.source, spec.input.level, spec.input.title, spec.input.data);
|
|
31
|
+
const expected = spec.output;
|
|
32
32
|
assert.deepEqual(JSON.parse(actual), _.extend({ deploy_env: "testing", wf_id: "abc" }, JSON.parse(expected)));
|
|
33
33
|
});
|
|
34
34
|
});
|
|
@@ -1,138 +1,145 @@
|
|
|
1
1
|
var KayveeLogger = require("../lib/logger/logger");
|
|
2
2
|
var assert = require("assert");
|
|
3
|
-
|
|
3
|
+
let sample = "";
|
|
4
4
|
function outputFunc(text) {
|
|
5
5
|
sample = text;
|
|
6
6
|
return sample;
|
|
7
7
|
}
|
|
8
|
-
describe("logger_test",
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
beforeEach(
|
|
8
|
+
describe("logger_test", () => {
|
|
9
|
+
let logObj = null;
|
|
10
|
+
let logObj2 = null;
|
|
11
|
+
beforeEach(() => {
|
|
12
12
|
logObj = new KayveeLogger("logger-tester");
|
|
13
13
|
sample = "";
|
|
14
14
|
return logObj.setOutput(outputFunc);
|
|
15
15
|
});
|
|
16
|
-
describe(".constructor",
|
|
17
|
-
it("passing in parameters to constructor",
|
|
18
|
-
|
|
16
|
+
describe(".constructor", () => {
|
|
17
|
+
it("passing in parameters to constructor", () => {
|
|
18
|
+
const formatter = (data) => `${data.level}.${data.source}.${data.title}`;
|
|
19
19
|
logObj = new KayveeLogger("logger-test", KayveeLogger.Info, formatter, outputFunc);
|
|
20
20
|
logObj.debug("testlogdebug");
|
|
21
|
-
|
|
21
|
+
let expected = "";
|
|
22
22
|
assert.equal(sample, expected);
|
|
23
23
|
logObj.info("testloginfo");
|
|
24
|
-
expected = KayveeLogger.Info
|
|
24
|
+
expected = `${KayveeLogger.Info}.logger-test.testloginfo`;
|
|
25
25
|
assert.equal(sample, expected);
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
-
describe(".validateloglvl",
|
|
28
|
+
describe(".validateloglvl", () => {
|
|
29
29
|
// Explicit validation checks
|
|
30
|
-
it("is case-insensitive in log level name",
|
|
31
|
-
|
|
30
|
+
it("is case-insensitive in log level name", () => {
|
|
31
|
+
let logLvl = logObj._validateLogLvl("debug");
|
|
32
32
|
assert.equal(logLvl, KayveeLogger.Debug);
|
|
33
33
|
logLvl = logObj._validateLogLvl("Debug");
|
|
34
34
|
assert.equal(logLvl, KayveeLogger.Debug);
|
|
35
35
|
});
|
|
36
|
-
it("sets non-default log levels",
|
|
37
|
-
|
|
36
|
+
it("sets non-default log levels", () => {
|
|
37
|
+
let logLvl = logObj._validateLogLvl("info");
|
|
38
38
|
assert.equal(logLvl, KayveeLogger.Info);
|
|
39
39
|
// TODO: for each possible log level ...
|
|
40
40
|
logLvl = logObj._validateLogLvl("critical");
|
|
41
41
|
assert.equal(logLvl, KayveeLogger.Critical);
|
|
42
42
|
});
|
|
43
|
-
it("sets level to Debug, if given an invalid log level",
|
|
44
|
-
|
|
43
|
+
it("sets level to Debug, if given an invalid log level", () => {
|
|
44
|
+
const logLvl = logObj._validateLogLvl("sometest");
|
|
45
45
|
assert.equal(logLvl, KayveeLogger.Debug);
|
|
46
46
|
});
|
|
47
47
|
});
|
|
48
|
-
describe(".invalidlog",
|
|
49
|
-
it("check valid debug level JSON output of invalid log level",
|
|
48
|
+
describe(".invalidlog", () => {
|
|
49
|
+
it("check valid debug level JSON output of invalid log level", () => {
|
|
50
50
|
// Invalid log levels will default to debug
|
|
51
51
|
logObj.setLogLevel("invalidloglevel");
|
|
52
52
|
logObj.debug("testlogdebug");
|
|
53
|
-
|
|
53
|
+
let expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Debug}", "title": "testlogdebug"}`;
|
|
54
54
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
55
55
|
logObj.setLogLevel("sometest");
|
|
56
56
|
logObj.info("testloginfo");
|
|
57
|
-
expected =
|
|
57
|
+
expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Info}", "title": "testloginfo"}`;
|
|
58
58
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
|
-
describe(".debug",
|
|
62
|
-
it("test debug function",
|
|
61
|
+
describe(".debug", () => {
|
|
62
|
+
it("test debug function", () => {
|
|
63
63
|
logObj.debug("testlogdebug");
|
|
64
|
-
|
|
64
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Debug}", "title": "testlogdebug"}`;
|
|
65
65
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
66
66
|
});
|
|
67
|
-
it("test debugD function",
|
|
67
|
+
it("test debugD function", () => {
|
|
68
68
|
logObj.debugD("testlogdebug", { key1: "val1", key2: "val2" });
|
|
69
|
-
|
|
69
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
70
|
+
"level": "${KayveeLogger.Debug}", "title": "testlogdebug","key1": "val1", "key2": "val2"}`;
|
|
70
71
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
71
72
|
});
|
|
72
73
|
});
|
|
73
|
-
describe(".info",
|
|
74
|
-
it("test info function",
|
|
74
|
+
describe(".info", () => {
|
|
75
|
+
it("test info function", () => {
|
|
75
76
|
logObj.info("testloginfo");
|
|
76
|
-
|
|
77
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Info}", "title": "testloginfo"}`;
|
|
77
78
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
78
79
|
});
|
|
79
|
-
it("test infoD function",
|
|
80
|
+
it("test infoD function", () => {
|
|
80
81
|
logObj.infoD("testloginfo", { key1: "val1", key2: "val2" });
|
|
81
|
-
|
|
82
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
83
|
+
"level": "${KayveeLogger.Info}", "title": "testloginfo","key1": "val1", "key2": "val2"}`;
|
|
82
84
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
83
85
|
});
|
|
84
86
|
});
|
|
85
|
-
describe(".warning",
|
|
86
|
-
it("test warn function",
|
|
87
|
+
describe(".warning", () => {
|
|
88
|
+
it("test warn function", () => {
|
|
87
89
|
logObj.warn("testlogwarning");
|
|
88
|
-
|
|
90
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Warning}", "title": "testlogwarning"}`;
|
|
89
91
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
90
92
|
});
|
|
91
|
-
it("test warnD function",
|
|
93
|
+
it("test warnD function", () => {
|
|
92
94
|
logObj.warnD("testlogwarning", { key1: "val1", key2: "val2" });
|
|
93
|
-
|
|
95
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
96
|
+
"level": "${KayveeLogger.Warning}", "title": "testlogwarning","key1": "val1", "key2": "val2"}`;
|
|
94
97
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
95
98
|
});
|
|
96
99
|
});
|
|
97
|
-
describe(".error",
|
|
98
|
-
it("test error function",
|
|
100
|
+
describe(".error", () => {
|
|
101
|
+
it("test error function", () => {
|
|
99
102
|
logObj.error("testlogerror");
|
|
100
|
-
|
|
103
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Error}", "title": "testlogerror"}`;
|
|
101
104
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
102
105
|
});
|
|
103
|
-
it("test errorD function",
|
|
106
|
+
it("test errorD function", () => {
|
|
104
107
|
logObj.errorD("testlogerror", { key1: "val1", key2: "val2" });
|
|
105
|
-
|
|
108
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
109
|
+
"level": "${KayveeLogger.Error}", "title": "testlogerror","key1": "val1", "key2": "val2"}`;
|
|
106
110
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
107
111
|
});
|
|
108
112
|
});
|
|
109
|
-
describe(".critical",
|
|
110
|
-
it("test critical function",
|
|
113
|
+
describe(".critical", () => {
|
|
114
|
+
it("test critical function", () => {
|
|
111
115
|
logObj.critical("testlogcritical");
|
|
112
|
-
|
|
116
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Critical}", "title": "testlogcritical"}`;
|
|
113
117
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
114
118
|
});
|
|
115
|
-
it("test criticalD function",
|
|
119
|
+
it("test criticalD function", () => {
|
|
116
120
|
logObj.criticalD("testlogcritical", { key1: "val1", key2: "val2" });
|
|
117
|
-
|
|
121
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
122
|
+
"level": "${KayveeLogger.Critical}", "title": "testlogcritical","key1": "val1", "key2": "val2"}`;
|
|
118
123
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
119
124
|
});
|
|
120
125
|
});
|
|
121
|
-
describe(".counter",
|
|
122
|
-
it("test counter function",
|
|
126
|
+
describe(".counter", () => {
|
|
127
|
+
it("test counter function", () => {
|
|
123
128
|
logObj.counter("testlogcounter");
|
|
124
|
-
|
|
129
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
130
|
+
"level": "${KayveeLogger.Info}", "title": "testlogcounter", "type": "counter", "value": 1}`;
|
|
125
131
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
126
132
|
});
|
|
127
|
-
it("test counterD function",
|
|
133
|
+
it("test counterD function", () => {
|
|
128
134
|
logObj.counterD("testlogcounter", 2, { key1: "val1", key2: "val2" });
|
|
129
|
-
|
|
130
|
-
|
|
135
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
136
|
+
"level": "${KayveeLogger.Info}", "title": "testlogcounter","type": "counter", "value": 2,"key1": "val1",` +
|
|
137
|
+
' "key2": "val2"}';
|
|
131
138
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
132
139
|
});
|
|
133
|
-
it("test counterD function with overrides",
|
|
140
|
+
it("test counterD function with overrides", () => {
|
|
134
141
|
logObj.counterD("testlogcounter", 2, { key1: "val1", key2: "val2", value: 18 });
|
|
135
|
-
|
|
142
|
+
const expected = {
|
|
136
143
|
deploy_env: "testing",
|
|
137
144
|
wf_id: "abc",
|
|
138
145
|
source: "logger-tester",
|
|
@@ -146,20 +153,22 @@ describe("logger_test", function () {
|
|
|
146
153
|
assert.deepEqual(JSON.parse(sample), expected);
|
|
147
154
|
});
|
|
148
155
|
});
|
|
149
|
-
describe(".gauge",
|
|
150
|
-
it("test gauge function",
|
|
156
|
+
describe(".gauge", () => {
|
|
157
|
+
it("test gauge function", () => {
|
|
151
158
|
logObj.gauge("testloggauge", 0);
|
|
152
|
-
|
|
159
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
160
|
+
"level": "${KayveeLogger.Info}", "title": "testloggauge", "type": "gauge", "value": 0}`;
|
|
153
161
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
154
162
|
});
|
|
155
|
-
it("test gaugeD function",
|
|
163
|
+
it("test gaugeD function", () => {
|
|
156
164
|
logObj.gaugeD("testloggauge", 4, { key1: "val1", key2: "val2" });
|
|
157
|
-
|
|
165
|
+
const expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester",
|
|
166
|
+
"level": "${KayveeLogger.Info}", "title": "testloggauge", "type": "gauge", "value": 4, "key1": "val1", "key2": "val2"}`;
|
|
158
167
|
assert.deepEqual(JSON.parse(sample), JSON.parse(expected));
|
|
159
168
|
});
|
|
160
|
-
it("test gaugeD function with overrids",
|
|
169
|
+
it("test gaugeD function with overrids", () => {
|
|
161
170
|
logObj.gaugeD("testloggauge", 4, { key1: "val1", key2: "val2", value: 18 });
|
|
162
|
-
|
|
171
|
+
const expected = {
|
|
163
172
|
deploy_env: "testing",
|
|
164
173
|
wf_id: "abc",
|
|
165
174
|
source: "logger-tester",
|
|
@@ -173,12 +182,12 @@ describe("logger_test", function () {
|
|
|
173
182
|
assert.deepEqual(JSON.parse(sample), expected);
|
|
174
183
|
});
|
|
175
184
|
});
|
|
176
|
-
describe(".diffoutput",
|
|
177
|
-
it("output to different output functions using same logger",
|
|
185
|
+
describe(".diffoutput", () => {
|
|
186
|
+
it("output to different output functions using same logger", () => {
|
|
178
187
|
logObj.info("testloginfo");
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
188
|
+
const infoLog = sample;
|
|
189
|
+
let output2 = "";
|
|
190
|
+
const outputFunc2 = (text) => {
|
|
182
191
|
output2 = text;
|
|
183
192
|
return output2;
|
|
184
193
|
};
|
|
@@ -188,12 +197,12 @@ describe("logger_test", function () {
|
|
|
188
197
|
assert.notDeepEqual(JSON.parse(output2), JSON.parse(sample));
|
|
189
198
|
});
|
|
190
199
|
});
|
|
191
|
-
describe(".nomodifydata",
|
|
192
|
-
before(
|
|
200
|
+
describe(".nomodifydata", () => {
|
|
201
|
+
before(() => {
|
|
193
202
|
logObj.setOutput(outputFunc);
|
|
194
203
|
});
|
|
195
|
-
it("does not modify data",
|
|
196
|
-
|
|
204
|
+
it("does not modify data", () => {
|
|
205
|
+
const data = {
|
|
197
206
|
str: "modify",
|
|
198
207
|
obj: {
|
|
199
208
|
key: "value",
|
|
@@ -202,7 +211,7 @@ describe("logger_test", function () {
|
|
|
202
211
|
};
|
|
203
212
|
// not using deepClone since that's what we are
|
|
204
213
|
// somewhat testing
|
|
205
|
-
|
|
214
|
+
const dataCopy = {
|
|
206
215
|
str: "modify",
|
|
207
216
|
obj: {
|
|
208
217
|
key: "value",
|
|
@@ -211,7 +220,7 @@ describe("logger_test", function () {
|
|
|
211
220
|
};
|
|
212
221
|
logObj.infoD("testInfoWithData", data);
|
|
213
222
|
assert.deepEqual(data, dataCopy);
|
|
214
|
-
|
|
223
|
+
const output = {
|
|
215
224
|
deploy_env: "testing",
|
|
216
225
|
wf_id: "abc",
|
|
217
226
|
fun: "boo",
|
|
@@ -226,16 +235,16 @@ describe("logger_test", function () {
|
|
|
226
235
|
assert.deepEqual(JSON.parse(sample), output);
|
|
227
236
|
});
|
|
228
237
|
});
|
|
229
|
-
describe(".hiddenlog",
|
|
230
|
-
describe(".logwarning",
|
|
231
|
-
beforeEach(
|
|
232
|
-
it("empty cases due to log level",
|
|
238
|
+
describe(".hiddenlog", () => {
|
|
239
|
+
describe(".logwarning", () => {
|
|
240
|
+
beforeEach(() => logObj.setLogLevel(KayveeLogger.Warning));
|
|
241
|
+
it("empty cases due to log level", () => {
|
|
233
242
|
logObj.debug("testlogdebug");
|
|
234
243
|
assert.equal(sample, "");
|
|
235
244
|
logObj.info("testloginfo");
|
|
236
245
|
assert.equal(sample, "");
|
|
237
246
|
});
|
|
238
|
-
it("not empty cases due to log level",
|
|
247
|
+
it("not empty cases due to log level", () => {
|
|
239
248
|
logObj.warn("testlogwarning");
|
|
240
249
|
assert.notDeepEqual(JSON.parse(sample), "");
|
|
241
250
|
logObj.error("testlogerror");
|
|
@@ -244,11 +253,11 @@ describe("logger_test", function () {
|
|
|
244
253
|
assert.notDeepEqual(JSON.parse(sample), "");
|
|
245
254
|
});
|
|
246
255
|
});
|
|
247
|
-
return describe(".logcritical",
|
|
248
|
-
beforeEach(
|
|
256
|
+
return describe(".logcritical", () => {
|
|
257
|
+
beforeEach(() => {
|
|
249
258
|
logObj.setLogLevel(KayveeLogger.Critical);
|
|
250
259
|
});
|
|
251
|
-
it("empty cases due to log level",
|
|
260
|
+
it("empty cases due to log level", () => {
|
|
252
261
|
logObj.debug("testlogdebug");
|
|
253
262
|
assert.equal(sample, "");
|
|
254
263
|
logObj.info("testloginfo");
|
|
@@ -258,24 +267,24 @@ describe("logger_test", function () {
|
|
|
258
267
|
logObj.error("testlogerror");
|
|
259
268
|
assert.equal(sample, "");
|
|
260
269
|
});
|
|
261
|
-
it("not empty cases due to log level",
|
|
270
|
+
it("not empty cases due to log level", () => {
|
|
262
271
|
logObj.critical("testlogcritical");
|
|
263
272
|
assert.notDeepEqual(JSON.parse(sample), "");
|
|
264
273
|
});
|
|
265
274
|
});
|
|
266
275
|
});
|
|
267
|
-
describe(".diffformat",
|
|
268
|
-
it("use a different formatter than KV",
|
|
269
|
-
|
|
276
|
+
describe(".diffformat", () => {
|
|
277
|
+
it("use a different formatter than KV", () => {
|
|
278
|
+
const testFormatter = () => '"This is a test"';
|
|
270
279
|
logObj.setFormatter(testFormatter);
|
|
271
280
|
logObj.warn("testlogwarning");
|
|
272
281
|
assert.deepEqual(JSON.parse(sample), "This is a test");
|
|
273
282
|
});
|
|
274
283
|
});
|
|
275
|
-
describe("global overrides",
|
|
276
|
-
it("what data has source prop",
|
|
284
|
+
describe("global overrides", () => {
|
|
285
|
+
it("what data has source prop", () => {
|
|
277
286
|
logObj.warnD("global-override", { source: "overrided" });
|
|
278
|
-
|
|
287
|
+
const output = {
|
|
279
288
|
deploy_env: "testing",
|
|
280
289
|
wf_id: "abc",
|
|
281
290
|
title: "global-override",
|
|
@@ -285,45 +294,47 @@ describe("logger_test", function () {
|
|
|
285
294
|
assert.deepEqual(JSON.parse(sample), output);
|
|
286
295
|
});
|
|
287
296
|
});
|
|
288
|
-
return describe(".multipleloggers",
|
|
289
|
-
before(
|
|
297
|
+
return describe(".multipleloggers", () => {
|
|
298
|
+
before(() => {
|
|
290
299
|
logObj2 = new KayveeLogger("logger-tester2");
|
|
291
300
|
return logObj2;
|
|
292
301
|
});
|
|
293
|
-
it("log to same output buffer",
|
|
302
|
+
it("log to same output buffer", () => {
|
|
294
303
|
logObj2.setOutput(outputFunc);
|
|
295
304
|
logObj.warn("testlogwarning");
|
|
296
|
-
|
|
305
|
+
const output1 = sample;
|
|
297
306
|
logObj2.info("testloginfo");
|
|
298
307
|
assert.notDeepEqual(JSON.parse(sample), JSON.parse(output1));
|
|
299
308
|
});
|
|
300
|
-
it("log to different output buffer",
|
|
301
|
-
|
|
302
|
-
|
|
309
|
+
it("log to different output buffer", () => {
|
|
310
|
+
let output2 = "";
|
|
311
|
+
const outputFunc2 = (text) => {
|
|
303
312
|
output2 = text;
|
|
304
313
|
return output2;
|
|
305
314
|
};
|
|
306
315
|
logObj2.setOutput(outputFunc2);
|
|
307
316
|
logObj.warn("testlogwarning");
|
|
308
317
|
logObj2.info("testloginfo");
|
|
309
|
-
|
|
318
|
+
const loggerExpected = `
|
|
319
|
+
{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester", "level": "${KayveeLogger.Warning}", "title": "testlogwarning"}
|
|
320
|
+
`;
|
|
310
321
|
assert.deepEqual(JSON.parse(sample), JSON.parse(loggerExpected));
|
|
311
|
-
|
|
322
|
+
const logger2Expected = `{"deploy_env": "testing", "wf_id": "abc", "source": "logger-tester2", "level": "${KayveeLogger.Info}", "title": "testloginfo"}`;
|
|
312
323
|
assert.deepEqual(JSON.parse(output2), JSON.parse(logger2Expected));
|
|
313
324
|
});
|
|
314
325
|
});
|
|
315
326
|
});
|
|
316
|
-
describe("mockRouting",
|
|
317
|
-
it("can override routing from setGlobalRouting, and captures routed logs",
|
|
318
|
-
|
|
319
|
-
KayveeLogger.mockRouting(
|
|
327
|
+
describe("mockRouting", () => {
|
|
328
|
+
it("can override routing from setGlobalRouting, and captures routed logs", () => {
|
|
329
|
+
const logObj = new KayveeLogger("test-source");
|
|
330
|
+
KayveeLogger.mockRouting((kvdone) => {
|
|
320
331
|
KayveeLogger.setGlobalRouting("test/kvconfig.yml");
|
|
321
332
|
logObj.info("foo-title");
|
|
322
|
-
|
|
333
|
+
const ruleMatches = kvdone();
|
|
323
334
|
// should match one log
|
|
324
335
|
assert.equal(ruleMatches["rule-two"].length, 1);
|
|
325
336
|
// matched log should look like so
|
|
326
|
-
|
|
337
|
+
const expectedRule = {
|
|
327
338
|
type: "analytics",
|
|
328
339
|
series: "requests.everything",
|
|
329
340
|
rule: "rule-two",
|