Skip to content

Commit 474a41e

Browse files
authored
fix: correctly track in-app message event parameters (#153)
1 parent d8b84ee commit 474a41e

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/Messages.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@ const verbToInterval = (verb: string): number => {
112112
}
113113
}
114114

115+
const maybeJSON = (str: string): Object | undefined => {
116+
try {
117+
return JSON.parse(str)
118+
} catch (e) {
119+
return undefined
120+
}
121+
}
122+
115123
export default class Messages {
116124
private _messageCache: MessageHash = {}
117125
private occurrenceTracker = new OccurrenceTracker()
@@ -293,8 +301,8 @@ export default class Messages {
293301
context.track(
294302
params.event,
295303
parseFloat(params.value),
296-
params.parameters,
297-
params.info
304+
params.info,
305+
maybeJSON(params.parameters)
298306
)
299307
break
300308
case 'runAction':

test/specs/Messages.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,18 @@ describe(Messages, () => {
12141214
expect(track).toHaveBeenCalledWith("Submit", NaN, undefined, undefined)
12151215
})
12161216

1217+
it("calls context.track to track events with parameters", () => {
1218+
const renderedMessage = createMockMessageRender()
1219+
const jsonParams = {"input":5}
1220+
const parameters = encodeURIComponent(JSON.stringify(jsonParams))
1221+
1222+
// satisfaction survey
1223+
messages.processMessageEvent("123", `http://leanplum/track?event=Submit&value=0&parameters=${parameters}`)
1224+
1225+
const track = renderedMessage.metadata.context.track
1226+
expect(track).toHaveBeenCalledWith("Submit", 0, undefined, jsonParams)
1227+
})
1228+
12171229
it("tracks impressions on loadFinished events", () => {
12181230
const renderedMessage = createMockMessageRender()
12191231

0 commit comments

Comments
 (0)