Skip to content

Commit bab2b35

Browse files
committed
test: add unit tests for new embedded session methods in IterableEmbeddedManager
1 parent 67e116b commit bab2b35

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

src/__mocks__/MockRNIterableAPI.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,14 @@ export class MockRNIterableAPI {
129129

130130
static getHtmlInAppContentForMessage = jest.fn();
131131

132+
static startEmbeddedSession = jest.fn();
133+
134+
static endEmbeddedSession = jest.fn();
135+
136+
static getEmbeddedPlacementIds = jest
137+
.fn()
138+
.mockResolvedValue([1, 2, 3] as number[]);
139+
132140
// set messages function is to set the messages static property
133141
// this is for testing purposes only
134142
static setMessages(messages: IterableInAppMessage[]): void {

src/embedded/classes/IterableEmbeddedManager.test.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1+
import { MockRNIterableAPI } from '../../__mocks__/MockRNIterableAPI';
12
import { IterableEmbeddedManager } from './IterableEmbeddedManager';
23

4+
// Mock the RNIterableAPI module
5+
jest.mock('../../api', () => ({
6+
__esModule: true,
7+
default: MockRNIterableAPI,
8+
}));
9+
310
describe('IterableEmbeddedManager', () => {
411
let embeddedManager: IterableEmbeddedManager;
512

613
beforeEach(() => {
714
embeddedManager = new IterableEmbeddedManager();
15+
jest.clearAllMocks();
816
});
917

1018
describe('isEnabled', () => {
@@ -55,5 +63,40 @@ describe('IterableEmbeddedManager', () => {
5563
expect(embeddedManager.isEnabled).toBe(false);
5664
});
5765
});
66+
67+
describe('getPlacementIds', () => {
68+
it('should call IterableApi.getEmbeddedPlacementIds', async () => {
69+
// WHEN getPlacementIds is called
70+
const result = await embeddedManager.getPlacementIds();
71+
72+
// THEN IterableApi.getEmbeddedPlacementIds is called
73+
expect(MockRNIterableAPI.getEmbeddedPlacementIds).toHaveBeenCalledTimes(
74+
1
75+
);
76+
77+
// AND the result is returned
78+
expect(result).toEqual([1, 2, 3]);
79+
});
80+
});
81+
82+
describe('startSession', () => {
83+
it('should call IterableApi.startEmbeddedSession', () => {
84+
// WHEN startSession is called
85+
embeddedManager.startSession();
86+
87+
// THEN IterableApi.startEmbeddedSession is called
88+
expect(MockRNIterableAPI.startEmbeddedSession).toHaveBeenCalledTimes(1);
89+
});
90+
});
91+
92+
describe('endSession', () => {
93+
it('should call IterableApi.endEmbeddedSession', () => {
94+
// WHEN endSession is called
95+
embeddedManager.endSession();
96+
97+
// THEN IterableApi.endEmbeddedSession is called
98+
expect(MockRNIterableAPI.endEmbeddedSession).toHaveBeenCalledTimes(1);
99+
});
100+
});
58101
});
59102

0 commit comments

Comments
 (0)