diff --git a/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts b/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts index 1380f9c715..056efdb3e6 100644 --- a/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts +++ b/plugins/analytics-module-ga/src/apis/implementations/AnalyticsApi/GoogleAnalytics.test.ts @@ -521,12 +521,30 @@ describe('GoogleAnalytics', () => { context, }); - const [command, data] = ReactGA.testModeAPI.calls[1]; + let [command, data] = ReactGA.testModeAPI.calls[1]; expect(command).toBe('send'); expect(data).toMatchObject({ hitType: 'pageview', page: '/', }); + + api.captureEvent({ + action: 'click', + subject: 'on something', + value: 42, + context, + }); + + [command, data] = ReactGA.testModeAPI.calls[2]; + expect(command).toBe('send'); + expect(data).toMatchObject({ + hitType: 'event', + // expect to use the legacy default category + eventCategory: 'App', + eventAction: 'click', + eventLabel: 'on something', + eventValue: 42, + }); }); it('use lowercase app as the new default category', () => { @@ -537,15 +555,41 @@ describe('GoogleAnalytics', () => { api.captureEvent({ action: 'navigate', subject: '/', - context: { ...context, extensionId: '', extension: '' }, + context: { + ...context, + extensionId: '', + extension: '', + }, }); - const [command, data] = ReactGA.testModeAPI.calls[1]; + let [command, data] = ReactGA.testModeAPI.calls[1]; expect(command).toBe('send'); expect(data).toMatchObject({ hitType: 'pageview', page: '/', }); + + api.captureEvent({ + action: 'click', + subject: 'on something', + value: 42, + context: { + ...context, + extensionId: '', + extension: '', + }, + }); + + [command, data] = ReactGA.testModeAPI.calls[2]; + expect(command).toBe('send'); + expect(data).toMatchObject({ + hitType: 'event', + // expect to use the new default category + eventCategory: 'app', + eventAction: 'click', + eventLabel: 'on something', + eventValue: 42, + }); }); it('prioritize new context extension id over old extension property', () => { @@ -556,15 +600,41 @@ describe('GoogleAnalytics', () => { api.captureEvent({ action: 'navigate', subject: '/', - context: { ...context, extensionId: 'app', extension: '' }, + context: { + ...context, + extensionId: 'app', + extension: '', + }, }); - const [command, data] = ReactGA.testModeAPI.calls[1]; + let [command, data] = ReactGA.testModeAPI.calls[1]; expect(command).toBe('send'); expect(data).toMatchObject({ hitType: 'pageview', page: '/', }); + + api.captureEvent({ + action: 'click', + subject: 'on something', + value: 42, + context: { + ...context, + extensionId: 'page:index', + extension: '', + }, + }); + + [command, data] = ReactGA.testModeAPI.calls[2]; + expect(command).toBe('send'); + expect(data).toMatchObject({ + hitType: 'event', + // expect use the new context extension id + eventCategory: 'page:index', + eventAction: 'click', + eventLabel: 'on something', + eventValue: 42, + }); }); }); });