Skip to content

Commit 408226c

Browse files
authored
fix: undefined log args (#20)
* test: simplify * fix: undefined log args
1 parent 0c2fa9c commit 408226c

File tree

5 files changed

+55
-27
lines changed

5 files changed

+55
-27
lines changed

src/control/ContextReceiver.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ namespace ContextReceiver {
132132
for (const varIndex in liveLog.logArguments) {
133133
logTags.addData(new KeyStringValuePair()
134134
.setKey(`argument.${varIndex}`)
135-
.setValue(tryFindVariable(liveLog.logArguments[varIndex], variables).toString() || 'undefined'));
135+
.setValue(tryFindVariable(liveLog.logArguments[varIndex], variables)?.toString() || 'undefined'));
136136
}
137137
}
138138

src/model/instruments/LiveLog.ts

-23
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,6 @@ export default class LiveLog extends LiveInstrument {
66
logFormat: string
77
logArguments: string[]
88

9-
createExpression(): string {
10-
let logArgumentsExpression = this.logArguments
11-
.map(arg => `data['${arg}'] = ${arg}.toString()`)
12-
.join(';');
13-
if (this.condition == null) {
14-
return `(() => {
15-
let data = {success: true};
16-
(data => {${logArgumentsExpression}})(data);
17-
return data;
18-
})()`;
19-
} else {
20-
return `(() => {
21-
if (${this.condition}) {
22-
let data = {success: true};
23-
(data => {${logArgumentsExpression}})(data);
24-
return data;
25-
} else {
26-
return {success: false};
27-
}
28-
})()`;
29-
}
30-
}
31-
329
toJson(): any {
3310
return {
3411
...super.toJson(),

test/LiveLogArgsTest.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ module.exports = function () {
1515
"line": TestUtils.getLineLabelNumber("done")
1616
}, null, 1, "arg i = {}", ["i"]).then(function (res) {
1717
assert.equal(res.status, 200);
18-
simplePrimitives(); //trigger breakpoint
18+
19+
//trigger log (after listener is registered)
20+
setTimeout(() => simplePrimitives(), 500);
1921
}).catch(function (err) {
2022
assert.fail(err)
2123
});
@@ -24,8 +26,6 @@ module.exports = function () {
2426
it('verify log data', async function () {
2527
this.timeout(2000)
2628

27-
setTimeout(() => simplePrimitives(), 1000);
28-
2929
let event = await TestUtils.awaitMarkerEvent("LOG_HIT");
3030
let logResult = event.logResult
3131
assert.notEqual(logResult, undefined);

test/LiveLogUndefinedArgsTest.js

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const assert = require('assert');
2+
const TestUtils = require("./TestUtils.js");
3+
4+
module.exports = function () {
5+
function simplePrimitives() {
6+
let i = undefined;
7+
let i2 = null;
8+
TestUtils.addLineLabel("done", () => TestUtils.getLineNumber())
9+
}
10+
11+
it('add live log with undefined args', async function () {
12+
simplePrimitives() //setup labels
13+
14+
await TestUtils.addLiveLog({
15+
"source": TestUtils.getFilename()(),
16+
"line": TestUtils.getLineLabelNumber("done")
17+
}, null, 1, "arg i = {}, i2 = {}, i3 = {}", ["i", "i2", "i3"]).then(function (res) {
18+
assert.equal(res.status, 200);
19+
20+
//trigger log (after listener is registered)
21+
setTimeout(() => simplePrimitives(), 500);
22+
}).catch(function (err) {
23+
assert.fail(err)
24+
});
25+
});
26+
27+
it('verify log data', async function () {
28+
this.timeout(200000)
29+
30+
let event = await TestUtils.awaitMarkerEvent("LOG_HIT");
31+
let logResult = event.logResult
32+
assert.notEqual(logResult, undefined);
33+
34+
let logs = logResult.logs
35+
assert.notEqual(logs, undefined);
36+
assert.equal(logs.length, 1);
37+
38+
let log = logs[0]
39+
assert.notEqual(log, undefined);
40+
assert.equal(log.content, "arg i = {}, i2 = {}, i3 = {}");
41+
42+
let args = log.arguments
43+
assert.notEqual(args, undefined);
44+
assert.equal(args.length, 3);
45+
46+
assert.equal(args[0], "undefined");
47+
assert.equal(args[1], "undefined");
48+
assert.equal(args[2], "undefined");
49+
});
50+
};

test/test.js

+1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ describe("test simple primitives", require("./SimplePrimitivesLiveInstrumentTest
88
describe("test simple collections", require("./SimpleCollectionsLiveInstrumentTest"));
99
describe("test live log", require("./LiveLogTest"));
1010
describe("test live log with args", require("./LiveLogArgsTest"));
11+
describe("test live log with undefined args", require("./LiveLogUndefinedArgsTest"));
1112
describe("test hit limit", require("./HitLimitTest"));

0 commit comments

Comments
 (0)