Skip to content

Commit

Permalink
ref: Flatten Amplitude context properties (#3687)
Browse files Browse the repository at this point in the history
  • Loading branch information
spalmurray-codecov authored Jan 29, 2025
1 parent 5c7ed2b commit c763e30
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 49 deletions.
22 changes: 8 additions & 14 deletions src/services/events/amplitude/amplitude.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -121,13 +121,10 @@ describe('AmplitudeEventTracker', () => {
it('populates context as event properties', () => {
const tracker = new AmplitudeEventTracker()
tracker.setContext({
owner: {
id: 123,
},
repo: {
id: 321,
isPrivate: false,
},
ownerid: 123,
repoid: 321,
repoIsPrivate: false,
path: '/:provider/:owner',
})

tracker.track({
Expand All @@ -141,13 +138,10 @@ describe('AmplitudeEventTracker', () => {
event_type: 'Button Clicked',
event_properties: {
buttonName: 'Configure Repo',
owner: {
id: 123,
},
repo: {
id: 321,
isPrivate: false,
},
ownerid: 123,
repoid: 321,
repoIsPrivate: false,
path: '/:provider/:owner',
},
groups: {
org: 123,
Expand Down
4 changes: 2 additions & 2 deletions src/services/events/amplitude/amplitude.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ export class AmplitudeEventTracker implements EventTracker {
...this.context,
},
// This attaches the event to the owner's user group (org) as well
groups: this.context.owner?.id
groups: this.context.ownerid
? {
org: this.context.owner.id,
org: this.context.ownerid,
}
: undefined,
})
Expand Down
17 changes: 4 additions & 13 deletions src/services/events/hooks.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,7 @@ describe('useEventContext', () => {
await waitFor(() => {
expect(mockedSetContext).toHaveBeenCalledWith({
path: '/:provider/:owner',
owner: {
id: mockOwnerContext.owner.ownerid,
},
repo: undefined,
ownerid: mockOwnerContext.owner.ownerid,
})
})
})
Expand All @@ -148,13 +145,9 @@ describe('useEventContext', () => {
await waitFor(() => {
expect(mockedSetContext).toHaveBeenCalledWith({
path: '/:provider/:owner/:repo',
owner: {
id: mockOwnerContext.owner.ownerid,
},
repo: {
id: mockRepoContext.owner.repository.repoid,
isPrivate: mockRepoContext.owner.repository.private,
},
ownerid: mockOwnerContext.owner.ownerid,
repoid: mockRepoContext.owner.repository.repoid,
repoIsPrivate: mockRepoContext.owner.repository.private,
})
})
})
Expand All @@ -170,8 +163,6 @@ describe('useEventContext', () => {
await waitFor(() => {
expect(mockedSetContext).toHaveBeenCalledWith({
path: '/:provider/:owner',
owner: undefined,
repo: undefined,
})
})
})
Expand Down
19 changes: 6 additions & 13 deletions src/services/events/hooks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,16 @@ export function useEventContext() {

if (
path !== context.current.path ||
ownerData?.ownerid !== context.current.owner?.id ||
repoData?.repoid !== context.current.repo?.id
ownerData?.ownerid !== context.current.ownerid ||
repoData?.repoid !== context.current.repoid
) {
// only update if this is a new owner or repo
const newContext: EventContext = {
path,
owner: ownerData?.ownerid
? {
id: ownerData?.ownerid,
}
: undefined,
repo: repoData?.repoid
? {
id: repoData.repoid,
isPrivate: repoData.private === null ? undefined : repoData.private,
}
: undefined,
ownerid: ownerData?.ownerid || undefined,
repoid: repoData?.repoid || undefined,
repoIsPrivate:
typeof repoData?.private === 'boolean' ? repoData?.private : undefined,
}
eventTracker().setContext(newContext)
context.current = newContext
Expand Down
10 changes: 3 additions & 7 deletions src/services/events/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,9 @@ export type Identity = {
// arise in the future.
export type EventContext = {
// owner the event is being performed ON, not BY.
owner?: {
id: number
}
repo?: {
id: number
isPrivate?: boolean
}
ownerid?: number
repoid?: number
repoIsPrivate?: boolean
path?: string
}

Expand Down

0 comments on commit c763e30

Please sign in to comment.