Skip to content

Commit 3a8fd41

Browse files
committed
addressing review comments
1 parent 749c9f2 commit 3a8fd41

File tree

8 files changed

+285
-122
lines changed

8 files changed

+285
-122
lines changed

packages/shared/common/__tests__/internal/fdv2/PayloadReader.test.ts

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { EventListener, EventName, LDLogger } from '../../../src/api';
22
import { EventStream, Payload, PayloadReader } from '../../../src/internal/fdv2/payloadReader';
33

4-
class MockEventStreamm implements EventStream {
5-
private _listeners: {
6-
[event: EventName]: EventListener;
7-
} = {};
4+
class MockEventStream implements EventStream {
5+
private _listeners: Record<EventName, EventListener> = {};
86

97
addEventListener(eventName: EventName, listener: EventListener): void {
108
this._listeners[eventName] = listener;
@@ -16,7 +14,7 @@ class MockEventStreamm implements EventStream {
1614
}
1715

1816
it('it sets basis to true when intent code is xfer-full', () => {
19-
const mockStream = new MockEventStreamm();
17+
const mockStream = new MockEventStream();
2018
const receivedPayloads: Payload[] = [];
2119
const readerUnderTest = new PayloadReader(mockStream, {
2220
mockKind: (it) => it, // obj processor that just returns the same obj
@@ -26,10 +24,10 @@ it('it sets basis to true when intent code is xfer-full', () => {
2624
});
2725

2826
mockStream.simulateEvent('server-intent', {
29-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"}]}}',
27+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"}]}',
3028
});
3129
mockStream.simulateEvent('payload-transferred', {
32-
data: '{"data": {"state": "mockState", "version": 1}}',
30+
data: '{"state": "mockState", "version": 1}',
3331
});
3432
expect(receivedPayloads.length).toEqual(1);
3533
expect(receivedPayloads[0].id).toEqual('mockId');
@@ -38,7 +36,7 @@ it('it sets basis to true when intent code is xfer-full', () => {
3836
});
3937

4038
it('it sets basis to false when intent code is xfer-changes', () => {
41-
const mockStream = new MockEventStreamm();
39+
const mockStream = new MockEventStream();
4240
const receivedPayloads: Payload[] = [];
4341
const readerUnderTest = new PayloadReader(mockStream, {
4442
mockKind: (it) => it, // obj processor that just returns the same obj
@@ -48,10 +46,10 @@ it('it sets basis to false when intent code is xfer-changes', () => {
4846
});
4947

5048
mockStream.simulateEvent('server-intent', {
51-
data: '{"data": {"payloads": [{"intentCode": "xfer-changes", "id": "mockId"}]}}',
49+
data: '{"payloads": [{"code": "xfer-changes", "id": "mockId"}]}',
5250
});
5351
mockStream.simulateEvent('payload-transferred', {
54-
data: '{"data": {"state": "mockState", "version": 1}}',
52+
data: '{"state": "mockState", "version": 1}',
5553
});
5654
expect(receivedPayloads.length).toEqual(1);
5755
expect(receivedPayloads[0].id).toEqual('mockId');
@@ -60,7 +58,7 @@ it('it sets basis to false when intent code is xfer-changes', () => {
6058
});
6159

6260
it('it includes multiple types of updates in payload', () => {
63-
const mockStream = new MockEventStreamm();
61+
const mockStream = new MockEventStream();
6462
const receivedPayloads: Payload[] = [];
6563
const readerUnderTest = new PayloadReader(mockStream, {
6664
mockKind: (it) => it, // obj processor that just returns the same obj
@@ -70,19 +68,19 @@ it('it includes multiple types of updates in payload', () => {
7068
});
7169

7270
mockStream.simulateEvent('server-intent', {
73-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"}]}}',
71+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"}]}',
7472
});
7573
mockStream.simulateEvent('put-object', {
76-
data: '{"data": {"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}}',
74+
data: '{"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}',
7775
});
7876
mockStream.simulateEvent('delete-object', {
79-
data: '{"data": {"kind": "mockKind", "key": "flagB", "version": 123}}',
77+
data: '{"kind": "mockKind", "key": "flagB", "version": 123}',
8078
});
8179
mockStream.simulateEvent('put-object', {
82-
data: '{"data": {"kind": "mockKind", "key": "flagC", "version": 123, "object": {"objectFieldC": "objectValueC"}}}',
80+
data: '{"kind": "mockKind", "key": "flagC", "version": 123, "object": {"objectFieldC": "objectValueC"}}',
8381
});
8482
mockStream.simulateEvent('payload-transferred', {
85-
data: '{"data": {"state": "mockState", "version": 1}}',
83+
data: '{"state": "mockState", "version": 1}',
8684
});
8785
expect(receivedPayloads.length).toEqual(1);
8886
expect(receivedPayloads[0].id).toEqual('mockId');
@@ -98,7 +96,7 @@ it('it includes multiple types of updates in payload', () => {
9896
});
9997

10098
it('it does not include messages thats are not between server-intent and payloader-transferred', () => {
101-
const mockStream = new MockEventStreamm();
99+
const mockStream = new MockEventStream();
102100
const receivedPayloads: Payload[] = [];
103101
const readerUnderTest = new PayloadReader(mockStream, {
104102
mockKind: (it) => it, // obj processor that just returns the same obj
@@ -108,16 +106,16 @@ it('it does not include messages thats are not between server-intent and payload
108106
});
109107

110108
mockStream.simulateEvent('put-object', {
111-
data: '{"data": {"kind": "mockKind", "key": "flagShouldIgnore", "version": 123, "object": {"objectFieldShouldIgnore": "objectValueShouldIgnore"}}}',
109+
data: '{"kind": "mockKind", "key": "flagShouldIgnore", "version": 123, "object": {"objectFieldShouldIgnore": "objectValueShouldIgnore"}}',
112110
});
113111
mockStream.simulateEvent('server-intent', {
114-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"}]}}',
112+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"}]}',
115113
});
116114
mockStream.simulateEvent('put-object', {
117-
data: '{"data": {"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}}',
115+
data: '{"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}',
118116
});
119117
mockStream.simulateEvent('payload-transferred', {
120-
data: '{"data": {"state": "mockState", "version": 1}}',
118+
data: '{"state": "mockState", "version": 1}',
121119
});
122120
expect(receivedPayloads.length).toEqual(1);
123121
expect(receivedPayloads[0].updates.length).toEqual(1);
@@ -131,7 +129,7 @@ it('logs prescribed message when goodbye event is encountered', () => {
131129
info: jest.fn(),
132130
debug: jest.fn(),
133131
};
134-
const mockStream = new MockEventStreamm();
132+
const mockStream = new MockEventStream();
135133
const receivedPayloads: Payload[] = [];
136134
const readerUnderTest = new PayloadReader(
137135
mockStream,
@@ -146,7 +144,7 @@ it('logs prescribed message when goodbye event is encountered', () => {
146144
});
147145

148146
mockStream.simulateEvent('goodbye', {
149-
data: '{"data": {"reason": "Bye"}}',
147+
data: '{"reason": "Bye"}',
150148
});
151149

152150
expect(receivedPayloads.length).toEqual(0);
@@ -162,7 +160,7 @@ it('logs prescribed message when error event is encountered', () => {
162160
info: jest.fn(),
163161
debug: jest.fn(),
164162
};
165-
const mockStream = new MockEventStreamm();
163+
const mockStream = new MockEventStream();
166164
const receivedPayloads: Payload[] = [];
167165
const readerUnderTest = new PayloadReader(
168166
mockStream,
@@ -177,16 +175,16 @@ it('logs prescribed message when error event is encountered', () => {
177175
});
178176

179177
mockStream.simulateEvent('server-intent', {
180-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"}]}}',
178+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"}]}',
181179
});
182180
mockStream.simulateEvent('put-object', {
183-
data: '{"data": {"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}}',
181+
data: '{"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}',
184182
});
185183
mockStream.simulateEvent('error', {
186-
data: '{"data": {"reason": "Womp womp"}}',
184+
data: '{"reason": "Womp womp"}',
187185
});
188186
mockStream.simulateEvent('payload-transferred', {
189-
data: '{"data": {"state": "mockState", "version": 1}}',
187+
data: '{"state": "mockState", "version": 1}',
190188
});
191189
expect(receivedPayloads.length).toEqual(0);
192190
expect(mockLogger.info).toHaveBeenCalledWith(
@@ -201,7 +199,7 @@ it('discards partially transferred data when an error is encountered', () => {
201199
info: jest.fn(),
202200
debug: jest.fn(),
203201
};
204-
const mockStream = new MockEventStreamm();
202+
const mockStream = new MockEventStream();
205203
const receivedPayloads: Payload[] = [];
206204
const readerUnderTest = new PayloadReader(
207205
mockStream,
@@ -216,31 +214,31 @@ it('discards partially transferred data when an error is encountered', () => {
216214
});
217215

218216
mockStream.simulateEvent('server-intent', {
219-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"}]}}',
217+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"}]}',
220218
});
221219
mockStream.simulateEvent('put-object', {
222-
data: '{"data": {"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}}',
220+
data: '{"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}',
223221
});
224222
mockStream.simulateEvent('error', {
225-
data: '{"data": {"reason": "Womp womp"}}',
223+
data: '{"reason": "Womp womp"}',
226224
});
227225
mockStream.simulateEvent('payload-transferred', {
228-
data: '{"data": {"state": "mockState", "version": 1}}',
226+
data: '{"state": "mockState", "version": 1}',
229227
});
230228
mockStream.simulateEvent('server-intent', {
231-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId2"}]}}',
229+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId2"}]}',
232230
});
233231
mockStream.simulateEvent('put-object', {
234-
data: '{"data": {"kind": "mockKind", "key": "flagX", "version": 123, "object": {"objectFieldX": "objectValueX"}}}',
232+
data: '{"kind": "mockKind", "key": "flagX", "version": 123, "object": {"objectFieldX": "objectValueX"}}',
235233
});
236234
mockStream.simulateEvent('delete-object', {
237-
data: '{"data": {"kind": "mockKind", "key": "flagY", "version": 123}}',
235+
data: '{"kind": "mockKind", "key": "flagY", "version": 123}',
238236
});
239237
mockStream.simulateEvent('put-object', {
240-
data: '{"data": {"kind": "mockKind", "key": "flagZ", "version": 123, "object": {"objectFieldZ": "objectValueZ"}}}',
238+
data: '{"kind": "mockKind", "key": "flagZ", "version": 123, "object": {"objectFieldZ": "objectValueZ"}}',
241239
});
242240
mockStream.simulateEvent('payload-transferred', {
243-
data: '{"data": {"state": "mockState2", "version": 1}}',
241+
data: '{"state": "mockState2", "version": 1}',
244242
});
245243
expect(receivedPayloads.length).toEqual(1);
246244
expect(receivedPayloads[0].id).toEqual('mockId2');
@@ -256,7 +254,7 @@ it('discards partially transferred data when an error is encountered', () => {
256254
});
257255

258256
it('silently ignores unrecognized kinds', () => {
259-
const mockStream = new MockEventStreamm();
257+
const mockStream = new MockEventStream();
260258
const receivedPayloads: Payload[] = [];
261259
const readerUnderTest = new PayloadReader(mockStream, {
262260
mockKind: (it) => it, // obj processor that just returns the same obj
@@ -266,16 +264,16 @@ it('silently ignores unrecognized kinds', () => {
266264
});
267265

268266
mockStream.simulateEvent('server-intent', {
269-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"}]}}',
267+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"}]}',
270268
});
271269
mockStream.simulateEvent('put-object', {
272-
data: '{"data": {"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}}',
270+
data: '{"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}',
273271
});
274272
mockStream.simulateEvent('put-object', {
275-
data: '{"data": {"kind": "ItsMeYourBrotherUnrecognizedKind", "key": "unrecognized", "version": 123, "object": {"unrecognized": "unrecognized"}}}',
273+
data: '{"kind": "ItsMeYourBrotherUnrecognizedKind", "key": "unrecognized", "version": 123, "object": {"unrecognized": "unrecognized"}}',
276274
});
277275
mockStream.simulateEvent('payload-transferred', {
278-
data: '{"data": {"state": "mockState", "version": 1}}',
276+
data: '{"state": "mockState", "version": 1}',
279277
});
280278
expect(receivedPayloads.length).toEqual(1);
281279
expect(receivedPayloads[0].id).toEqual('mockId');
@@ -286,7 +284,7 @@ it('silently ignores unrecognized kinds', () => {
286284
});
287285

288286
it('ignores additional payloads beyond the first payload in the server-intent message', () => {
289-
const mockStream = new MockEventStreamm();
287+
const mockStream = new MockEventStream();
290288
const receivedPayloads: Payload[] = [];
291289
const readerUnderTest = new PayloadReader(mockStream, {
292290
mockKind: (it) => it, // obj processor that just returns the same obj
@@ -296,16 +294,16 @@ it('ignores additional payloads beyond the first payload in the server-intent me
296294
});
297295

298296
mockStream.simulateEvent('server-intent', {
299-
data: '{"data": {"payloads": [{"intentCode": "xfer-full", "id": "mockId"},{"intentCode": "IShouldBeIgnored", "id": "IShouldBeIgnored"}]}}',
297+
data: '{"payloads": [{"code": "xfer-full", "id": "mockId"},{"code": "IShouldBeIgnored", "id": "IShouldBeIgnored"}]}',
300298
});
301299
mockStream.simulateEvent('put-object', {
302-
data: '{"data": {"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}}',
300+
data: '{"kind": "mockKind", "key": "flagA", "version": 123, "object": {"objectFieldA": "objectValueA"}}',
303301
});
304302
mockStream.simulateEvent('put-object', {
305-
data: '{"data": {"kind": "ItsMeYourBrotherUnrecognizedKind", "key": "unrecognized", "version": 123, "object": {"unrecognized": "unrecognized"}}}',
303+
data: '{"kind": "ItsMeYourBrotherUnrecognizedKind", "key": "unrecognized", "version": 123, "object": {"unrecognized": "unrecognized"}}',
306304
});
307305
mockStream.simulateEvent('payload-transferred', {
308-
data: '{"data": {"state": "mockState", "version": 1}}',
306+
data: '{"state": "mockState", "version": 1}',
309307
});
310308
expect(receivedPayloads.length).toEqual(1);
311309
expect(receivedPayloads[0].id).toEqual('mockId');

0 commit comments

Comments
 (0)