Skip to content

Commit 0bcd15a

Browse files
Add track tests to openfeature client suite
1 parent 37751fa commit 0bcd15a

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

src/__tests__/nodeSuites/client.spec.js

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,4 +177,42 @@ describe('client tests', () => {
177177
expect(details.variant).toBeUndefined();
178178
});
179179

180-
})
180+
test('track: throws when missing eventName', async () => {
181+
try {
182+
await client.track("", { targetingKey: "u1", trafficType: "user" }, {});
183+
} catch (e) {
184+
expect(e.message).toBe("Missing eventName, required to track");
185+
expect(e.code).toBe("PARSE_ERROR");
186+
}
187+
});
188+
189+
test('track: throws when missing targetingKey', async () => {
190+
try {
191+
await client.track("my-event", { trafficType: "user" }, {});
192+
} catch (e) {
193+
expect(e.message).toBe("Missing targetingKey, required to track");
194+
expect(e.code).toBe("PARSE_ERROR");
195+
}
196+
});
197+
198+
test('track: throws when missing trafficType', async () => {
199+
try {
200+
await client.track("my-event", { targetingKey: "u1" }, {});
201+
} catch (e) {
202+
expect(e.message).toBe("Missing trafficType variable, required to track");
203+
expect(e.code).toBe("INVALID_CONTEXT");
204+
}
205+
});
206+
207+
test('track: without value', async () => {
208+
const trackSpy = jest.spyOn(splitClient, 'track');
209+
await client.track("my-event", { targetingKey: "u1", trafficType: "user" }, { properties: { prop1: "value1" } });
210+
expect(trackSpy).toHaveBeenCalledWith("u1", "user", "my-event", undefined, { prop1: "value1" });
211+
});
212+
213+
test('track: with value', async () => {
214+
const trackSpy = jest.spyOn(splitClient, 'track');
215+
await client.track("my-event", { targetingKey: "u1", trafficType: "user" }, { value: 9.99, properties: { prop1: "value1" } });
216+
expect(trackSpy).toHaveBeenCalledWith("u1", "user", "my-event", 9.99, { prop1: "value1" });
217+
});
218+
});

src/__tests__/nodeSuites/provider.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ describe('provider tests', () => {
214214
const trackSpy = jest.spyOn(splitClient, 'track');
215215
await provider.track("view", { targetingKey: "u1", trafficType: "user" }, null);
216216
expect(trackSpy).toHaveBeenCalledTimes(1);
217-
expect(trackSpy).toHaveBeenCalledWith("u1", "user", "view", 0, {});
217+
expect(trackSpy).toHaveBeenCalledWith("u1", "user", "view", undefined, {});
218218
});
219219

220220
test('track: ok with details', async () => {

0 commit comments

Comments
 (0)