Skip to content

Commit 01bb578

Browse files
NickSxticlaude
andcommitted
Remove entitlementsUpdateListener from QonversionInternal, wrap into deferredPurchasesListener
setEntitlementsUpdateListener now wraps the deprecated listener into a DeferredPurchasesListener that extracts entitlements from PurchaseResult. QonversionInternal only works with deferredPurchasesListener internally. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 801d40d commit 01bb578

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/internal/QonversionInternal.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const sdkSource = "rn";
3030

3131
export default class QonversionInternal implements QonversionApi {
3232

33-
private entitlementsUpdateListener: EntitlementsUpdateListener | null = null;
3433
private deferredPurchasesListener: DeferredPurchasesListener | null = null;
3534
private promoPurchasesDelegate: PromoPurchasesListener | null = null;
3635
private deferredPurchaseEventSubscribed = false;
@@ -401,10 +400,6 @@ export default class QonversionInternal implements QonversionApi {
401400

402401
if (purchaseResult) {
403402
this.deferredPurchasesListener?.onDeferredPurchaseCompleted(purchaseResult);
404-
405-
if (purchaseResult.entitlements) {
406-
this.entitlementsUpdateListener?.onEntitlementsUpdated(purchaseResult.entitlements);
407-
}
408403
}
409404
}
410405

@@ -418,8 +413,13 @@ export default class QonversionInternal implements QonversionApi {
418413
}
419414

420415
setEntitlementsUpdateListener(listener: EntitlementsUpdateListener) {
421-
this.subscribeToDeferredPurchaseEvent();
422-
this.entitlementsUpdateListener = listener;
416+
this.setDeferredPurchasesListener({
417+
onDeferredPurchaseCompleted: (purchaseResult: PurchaseResult) => {
418+
if (purchaseResult.entitlements) {
419+
listener.onEntitlementsUpdated(purchaseResult.entitlements);
420+
}
421+
}
422+
});
423423
}
424424

425425
setDeferredPurchasesListener(listener: DeferredPurchasesListener) {

src/internal/__tests__/QonversionInternal.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,15 +199,15 @@ describe('QonversionInternal - deprecated setEntitlementsUpdateListener', () =>
199199
});
200200
});
201201

202-
describe('QonversionInternal - both listeners coexist', () => {
202+
describe('QonversionInternal - setDeferredPurchasesListener replaces wrapped entitlementsUpdateListener', () => {
203203
beforeEach(() => {
204204
jest.clearAllMocks();
205205
for (const key of Object.keys(eventHandlers)) {
206206
delete eventHandlers[key];
207207
}
208208
});
209209

210-
it('both listeners fire from onDeferredPurchaseCompleted', () => {
210+
it('deferredPurchasesListener replaces wrapped entitlementsUpdateListener', () => {
211211
const oldListener: EntitlementsUpdateListener = { onEntitlementsUpdated: jest.fn() };
212212
const newListener: DeferredPurchasesListener = { onDeferredPurchaseCompleted: jest.fn() };
213213

@@ -228,8 +228,7 @@ describe('QonversionInternal - both listeners coexist', () => {
228228
fireEvent('onDeferredPurchaseCompleted', samplePurchaseResult);
229229

230230
expect(newListener.onDeferredPurchaseCompleted).toHaveBeenCalledTimes(1);
231-
expect(oldListener.onEntitlementsUpdated).toHaveBeenCalledTimes(1);
232-
expect(oldListener.onEntitlementsUpdated).toHaveBeenCalledWith(mockEntitlements);
231+
expect(oldListener.onEntitlementsUpdated).not.toHaveBeenCalled();
233232
});
234233

235234
it('subscribes to onDeferredPurchaseCompleted only once for both listeners', () => {

0 commit comments

Comments
 (0)