diff --git a/packages/plugins/plugin-amplitudeSession/src/AmplitudeSessionPlugin.tsx b/packages/plugins/plugin-amplitudeSession/src/AmplitudeSessionPlugin.tsx index 95bebe04e..3cc4ce4fb 100644 --- a/packages/plugins/plugin-amplitudeSession/src/AmplitudeSessionPlugin.tsx +++ b/packages/plugins/plugin-amplitudeSession/src/AmplitudeSessionPlugin.tsx @@ -136,10 +136,6 @@ export class AmplitudeSessionPlugin extends EventPlugin { this.eventSessionId = this.sessionId; } - if (eventName === AMP_SESSION_END_EVENT) { - console.log(`[AmplitudeSession] EndSession = ${this.eventSessionId}`); - } - if ( eventName.startsWith('Amplitude') || eventName === AMP_SESSION_START_EVENT || @@ -197,7 +193,7 @@ export class AmplitudeSessionPlugin extends EventPlugin { ...event, integrations: { ...integrations, - [this.key]: { session_id: this.sessionId }, + [this.key]: { session_id: this.eventSessionId }, }, }; }; @@ -255,8 +251,6 @@ export class AmplitudeSessionPlugin extends EventPlugin { this.eventSessionId === -1 ? newSessionId : this.eventSessionId; this.lastEventTime = newSessionId; - console.log(`[AmplitudeSession] startNewSession -> ${newSessionId}`); - await this.trackSessionStart(newSessionId); } @@ -276,8 +270,6 @@ export class AmplitudeSessionPlugin extends EventPlugin { return; } - console.log(`[AmplitudeSession] endSession -> ${this.sessionId}`); - this.analytics?.track(AMP_SESSION_END_EVENT, { integrations: { [this.key]: { session_id: sessionId }, diff --git a/packages/plugins/plugin-amplitudeSession/src/__tests__/AmplitudeSessionPlugin.test.ts b/packages/plugins/plugin-amplitudeSession/src/__tests__/AmplitudeSessionPlugin.test.ts index 17eeaf5d4..4a136e425 100644 --- a/packages/plugins/plugin-amplitudeSession/src/__tests__/AmplitudeSessionPlugin.test.ts +++ b/packages/plugins/plugin-amplitudeSession/src/__tests__/AmplitudeSessionPlugin.test.ts @@ -746,6 +746,34 @@ describe('AmplitudeSessionPlugin', () => { }); }); + it('should use eventSessionId for event enrichment during transition', async () => { + const baseTime = Date.now(); + jest.setSystemTime(baseTime); + + // Set up a session where eventSessionId differs from sessionId + // (simulates mid-transition state where new session has started but + // eventSessionId still points to the old session) + plugin['_sessionId'] = baseTime; + plugin['_eventSessionId'] = baseTime - 50000; + plugin['_lastEventTime'] = baseTime - 1000; + + const mockEvent: TrackEventType = { + type: EventType.TrackEvent, + event: 'test_event', + properties: {}, + messageId: 'msg-1', + timestamp: '2023-01-01T00:00:00.000Z', + anonymousId: 'anon-1', + }; + + const result = await plugin.execute(mockEvent); + + // insertSession should use eventSessionId, not sessionId + expect(result.integrations?.['Actions Amplitude']).toEqual({ + session_id: baseTime - 50000, + }); + }); + it('should NOT modify events when session_id already exists', async () => { const mockEvent: TrackEventType = { type: EventType.TrackEvent,