Skip to content

Commit 0984e9e

Browse files
committed
test: add unit tests for syncEmbeddedMessages and getEmbeddedMessages in IterableEmbeddedManager
1 parent bb0c200 commit 0984e9e

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

src/__mocks__/MockRNIterableAPI.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,35 @@ export class MockRNIterableAPI {
137137
.fn()
138138
.mockResolvedValue([1, 2, 3] as number[]);
139139

140+
static syncEmbeddedMessages = jest.fn().mockResolvedValue(undefined);
141+
142+
static getEmbeddedMessages = jest.fn().mockResolvedValue([
143+
{
144+
metadata: {
145+
messageId: 'msg-1',
146+
campaignId: 123,
147+
placementId: 1,
148+
},
149+
elements: {
150+
title: 'Test Message 1',
151+
body: 'Test body 1',
152+
},
153+
payload: { customKey: 'customValue' },
154+
},
155+
{
156+
metadata: {
157+
messageId: 'msg-2',
158+
campaignId: 456,
159+
placementId: 2,
160+
},
161+
elements: {
162+
title: 'Test Message 2',
163+
body: 'Test body 2',
164+
},
165+
payload: null,
166+
},
167+
]);
168+
140169
// set messages function is to set the messages static property
141170
// this is for testing purposes only
142171
static setMessages(messages: IterableInAppMessage[]): void {

src/embedded/classes/IterableEmbeddedManager.test.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,19 @@ describe('IterableEmbeddedManager', () => {
6464
});
6565
});
6666

67+
describe('syncMessages', () => {
68+
it('should call IterableApi.syncEmbeddedMessages', async () => {
69+
// WHEN syncMessages is called
70+
const result = await embeddedManager.syncMessages();
71+
72+
// THEN IterableApi.syncEmbeddedMessages is called
73+
expect(MockRNIterableAPI.syncEmbeddedMessages).toHaveBeenCalledTimes(1);
74+
75+
// AND the result is returned
76+
expect(result).toBeUndefined();
77+
});
78+
});
79+
6780
describe('getPlacementIds', () => {
6881
it('should call IterableApi.getEmbeddedPlacementIds', async () => {
6982
// WHEN getPlacementIds is called
@@ -79,6 +92,61 @@ describe('IterableEmbeddedManager', () => {
7992
});
8093
});
8194

95+
describe('getMessages', () => {
96+
it('should call IterableApi.getEmbeddedMessages with placement IDs', async () => {
97+
// GIVEN placement IDs
98+
const placementIds = [1, 2];
99+
100+
// WHEN getMessages is called
101+
const result = await embeddedManager.getMessages(placementIds);
102+
103+
// THEN IterableApi.getEmbeddedMessages is called with placement IDs
104+
expect(MockRNIterableAPI.getEmbeddedMessages).toHaveBeenCalledTimes(1);
105+
expect(MockRNIterableAPI.getEmbeddedMessages).toHaveBeenCalledWith(
106+
placementIds
107+
);
108+
109+
// AND the result contains embedded messages
110+
expect(result).toHaveLength(2);
111+
expect(result[0]).toEqual({
112+
metadata: {
113+
messageId: 'msg-1',
114+
campaignId: 123,
115+
placementId: 1,
116+
},
117+
elements: {
118+
title: 'Test Message 1',
119+
body: 'Test body 1',
120+
},
121+
payload: { customKey: 'customValue' },
122+
});
123+
expect(result[1]).toEqual({
124+
metadata: {
125+
messageId: 'msg-2',
126+
campaignId: 456,
127+
placementId: 2,
128+
},
129+
elements: {
130+
title: 'Test Message 2',
131+
body: 'Test body 2',
132+
},
133+
payload: null,
134+
});
135+
});
136+
137+
it('should call IterableApi.getEmbeddedMessages with null placement IDs', async () => {
138+
// WHEN getMessages is called with null
139+
const result = await embeddedManager.getMessages(null);
140+
141+
// THEN IterableApi.getEmbeddedMessages is called with null
142+
expect(MockRNIterableAPI.getEmbeddedMessages).toHaveBeenCalledTimes(1);
143+
expect(MockRNIterableAPI.getEmbeddedMessages).toHaveBeenCalledWith(null);
144+
145+
// AND the result is returned
146+
expect(result).toBeDefined();
147+
});
148+
});
149+
82150
describe('startSession', () => {
83151
it('should call IterableApi.startEmbeddedSession', () => {
84152
// WHEN startSession is called
@@ -98,5 +166,6 @@ describe('IterableEmbeddedManager', () => {
98166
expect(MockRNIterableAPI.endEmbeddedSession).toHaveBeenCalledTimes(1);
99167
});
100168
});
169+
101170
});
102171

0 commit comments

Comments
 (0)