@@ -21,7 +21,7 @@ test.describe('analyzeGoFile', () => {
2121 assert . ok ( amplitudeEvent ) ;
2222 assert . strictEqual ( amplitudeEvent . source , 'amplitude' ) ;
2323 assert . strictEqual ( amplitudeEvent . functionName , 'amplitudeTrack' ) ;
24- assert . strictEqual ( amplitudeEvent . line , 44 ) ;
24+ assert . strictEqual ( amplitudeEvent . line , 52 ) ;
2525 assert . deepStrictEqual ( amplitudeEvent . properties , {
2626 UserID : { type : 'string' } ,
2727 name : { type : 'string' } ,
@@ -35,7 +35,7 @@ test.describe('analyzeGoFile', () => {
3535 assert . ok ( segmentEvent ) ;
3636 assert . strictEqual ( segmentEvent . source , 'segment' ) ;
3737 assert . strictEqual ( segmentEvent . functionName , 'segmentTrack' ) ;
38- assert . strictEqual ( segmentEvent . line , 21 ) ;
38+ assert . strictEqual ( segmentEvent . line , 29 ) ;
3939 assert . deepStrictEqual ( segmentEvent . properties , {
4040 UserId : { type : 'string' } ,
4141 plan : { type : 'string' } ,
@@ -47,7 +47,7 @@ test.describe('analyzeGoFile', () => {
4747 assert . ok ( mixpanelEvent ) ;
4848 assert . strictEqual ( mixpanelEvent . source , 'mixpanel' ) ;
4949 assert . strictEqual ( mixpanelEvent . functionName , 'mixpanelTrack' ) ;
50- assert . strictEqual ( mixpanelEvent . line , 33 ) ;
50+ assert . strictEqual ( mixpanelEvent . line , 41 ) ;
5151 assert . deepStrictEqual ( mixpanelEvent . properties , {
5252 DistinctId : { type : 'string' } ,
5353 plan : { type : 'string' } ,
@@ -59,7 +59,7 @@ test.describe('analyzeGoFile', () => {
5959 assert . ok ( posthogEvent ) ;
6060 assert . strictEqual ( posthogEvent . source , 'posthog' ) ;
6161 assert . strictEqual ( posthogEvent . functionName , 'posthogTrack' ) ;
62- assert . strictEqual ( posthogEvent . line , 64 ) ;
62+ assert . strictEqual ( posthogEvent . line , 72 ) ;
6363 assert . deepStrictEqual ( posthogEvent . properties , {
6464 DistinctId : { type : 'string' } ,
6565 login_type : { type : 'string' } ,
@@ -72,7 +72,7 @@ test.describe('analyzeGoFile', () => {
7272 assert . ok ( snowplowEvent ) ;
7373 assert . strictEqual ( snowplowEvent . source , 'snowplow' ) ;
7474 assert . strictEqual ( snowplowEvent . functionName , 'snowplowTrack' ) ;
75- assert . strictEqual ( snowplowEvent . line , 81 ) ;
75+ assert . strictEqual ( snowplowEvent . line , 89 ) ;
7676 assert . deepStrictEqual ( snowplowEvent . properties , {
7777 Category : { type : 'string' } ,
7878 Property : { type : 'string' } ,
@@ -84,7 +84,7 @@ test.describe('analyzeGoFile', () => {
8484 assert . ok ( customEvent ) ;
8585 assert . strictEqual ( customEvent . source , 'custom' ) ;
8686 assert . strictEqual ( customEvent . functionName , 'main' ) ;
87- assert . strictEqual ( customEvent . line , 105 ) ;
87+ assert . strictEqual ( customEvent . line , 113 ) ;
8888 assert . deepStrictEqual ( customEvent . properties , {
8989 userId : { type : 'string' } ,
9090 foo : { type : 'string' } ,
@@ -163,7 +163,7 @@ test.describe('analyzeGoFile', () => {
163163 assert . ok ( eventMap [ 'Signed Up' ] ) ;
164164 assert . strictEqual ( eventMap [ 'Signed Up' ] . eventName , 'Signed Up' ) ;
165165 assert . strictEqual ( eventMap [ 'Signed Up' ] . source , 'segment' ) ;
166- assert . strictEqual ( eventMap [ 'Signed Up' ] . line , 21 ) ;
166+ assert . strictEqual ( eventMap [ 'Signed Up' ] . line , 29 ) ;
167167 assert . strictEqual ( eventMap [ 'Signed Up' ] . functionName , 'segmentTrack' ) ;
168168 assert . deepStrictEqual ( eventMap [ 'Signed Up' ] . properties , {
169169 UserId : { type : 'string' } ,
@@ -174,7 +174,7 @@ test.describe('analyzeGoFile', () => {
174174 assert . ok ( eventMap [ 'some_event' ] ) ;
175175 assert . strictEqual ( eventMap [ 'some_event' ] . eventName , 'some_event' ) ;
176176 assert . strictEqual ( eventMap [ 'some_event' ] . source , 'mixpanel' ) ;
177- assert . strictEqual ( eventMap [ 'some_event' ] . line , 33 ) ;
177+ assert . strictEqual ( eventMap [ 'some_event' ] . line , 41 ) ;
178178 assert . strictEqual ( eventMap [ 'some_event' ] . functionName , 'mixpanelTrack' ) ;
179179 assert . deepStrictEqual ( eventMap [ 'some_event' ] . properties , {
180180 DistinctId : { type : 'string' } ,
@@ -185,7 +185,7 @@ test.describe('analyzeGoFile', () => {
185185 assert . ok ( eventMap [ 'Button Clicked' ] ) ;
186186 assert . strictEqual ( eventMap [ 'Button Clicked' ] . eventName , 'Button Clicked' ) ;
187187 assert . strictEqual ( eventMap [ 'Button Clicked' ] . source , 'amplitude' ) ;
188- assert . strictEqual ( eventMap [ 'Button Clicked' ] . line , 44 ) ;
188+ assert . strictEqual ( eventMap [ 'Button Clicked' ] . line , 52 ) ;
189189 assert . strictEqual ( eventMap [ 'Button Clicked' ] . functionName , 'amplitudeTrack' ) ;
190190 assert . deepStrictEqual ( eventMap [ 'Button Clicked' ] . properties , {
191191 UserID : { type : 'string' } ,
@@ -198,7 +198,7 @@ test.describe('analyzeGoFile', () => {
198198 assert . ok ( eventMap [ 'user_signed_up' ] ) ;
199199 assert . strictEqual ( eventMap [ 'user_signed_up' ] . eventName , 'user_signed_up' ) ;
200200 assert . strictEqual ( eventMap [ 'user_signed_up' ] . source , 'posthog' ) ;
201- assert . strictEqual ( eventMap [ 'user_signed_up' ] . line , 64 ) ;
201+ assert . strictEqual ( eventMap [ 'user_signed_up' ] . line , 72 ) ;
202202 assert . strictEqual ( eventMap [ 'user_signed_up' ] . functionName , 'posthogTrack' ) ;
203203 assert . deepStrictEqual ( eventMap [ 'user_signed_up' ] . properties , {
204204 DistinctId : { type : 'string' } ,
@@ -210,7 +210,7 @@ test.describe('analyzeGoFile', () => {
210210 assert . ok ( eventMap [ 'add-to-basket' ] ) ;
211211 assert . strictEqual ( eventMap [ 'add-to-basket' ] . eventName , 'add-to-basket' ) ;
212212 assert . strictEqual ( eventMap [ 'add-to-basket' ] . source , 'snowplow' ) ;
213- assert . strictEqual ( eventMap [ 'add-to-basket' ] . line , 81 ) ;
213+ assert . strictEqual ( eventMap [ 'add-to-basket' ] . line , 89 ) ;
214214 assert . strictEqual ( eventMap [ 'add-to-basket' ] . functionName , 'snowplowTrack' ) ;
215215 assert . deepStrictEqual ( eventMap [ 'add-to-basket' ] . properties , {
216216 Category : { type : 'string' } ,
@@ -221,7 +221,7 @@ test.describe('analyzeGoFile', () => {
221221 assert . ok ( eventMap [ 'custom_event' ] ) ;
222222 assert . strictEqual ( eventMap [ 'custom_event' ] . eventName , 'custom_event' ) ;
223223 assert . strictEqual ( eventMap [ 'custom_event' ] . source , 'custom' ) ;
224- assert . strictEqual ( eventMap [ 'custom_event' ] . line , 105 ) ;
224+ assert . strictEqual ( eventMap [ 'custom_event' ] . line , 113 ) ;
225225 assert . strictEqual ( eventMap [ 'custom_event' ] . functionName , 'main' ) ;
226226 assert . deepStrictEqual ( eventMap [ 'custom_event' ] . properties , {
227227 userId : { type : 'string' } ,
@@ -241,4 +241,20 @@ test.describe('analyzeGoFile', () => {
241241 }
242242 } ) ;
243243 } ) ;
244+
245+ test ( 'should detect events for all custom function signature variations' , async ( ) => {
246+ const variants = [
247+ { sig : 'customTrackFunction0' , event : 'custom_event0' } ,
248+ { sig : 'customTrackFunction1(EVENT_NAME, PROPERTIES)' , event : 'custom_event1' } ,
249+ { sig : 'customTrackFunction2(userId, EVENT_NAME, PROPERTIES)' , event : 'custom_event2' } ,
250+ { sig : 'customTrackFunction3(EVENT_NAME, PROPERTIES, userEmail)' , event : 'custom_event3' } ,
251+ { sig : 'customTrackFunction4(userId, EVENT_NAME, userAddress, PROPERTIES, userEmail)' , event : 'custom_event4' } ,
252+ ] ;
253+
254+ for ( const { sig, event } of variants ) {
255+ const events = await analyzeGoFile ( testFilePath , sig ) ;
256+ const found = events . find ( e => e . eventName === event && e . source === 'custom' ) ;
257+ assert . ok ( found , `Should detect ${ event } for signature ${ sig } ` ) ;
258+ }
259+ } ) ;
244260} ) ;
0 commit comments