diff --git a/.changeset/curvy-lamps-behave.md b/.changeset/curvy-lamps-behave.md new file mode 100644 index 000000000..d14100cf1 --- /dev/null +++ b/.changeset/curvy-lamps-behave.md @@ -0,0 +1,5 @@ +--- +'@segment/analytics-next': minor +--- + +Emit a `reset` event when analytics.reset() is called diff --git a/packages/browser/src/core/analytics/__tests__/integration.test.ts b/packages/browser/src/core/analytics/__tests__/integration.test.ts index 29147bb51..245127852 100644 --- a/packages/browser/src/core/analytics/__tests__/integration.test.ts +++ b/packages/browser/src/core/analytics/__tests__/integration.test.ts @@ -260,5 +260,15 @@ describe('Analytics', () => { storedData = getAjsBrowserStorage() expect(storedData).toEqual({}) }) + + it('emits a reset event', async () => { + const analytics = new Analytics({ writeKey: '' }) + const fn = jest.fn() + analytics.on('reset', fn) + analytics.user().id('known-user') + + analytics.reset() + expect(fn).toHaveBeenCalledTimes(1) + }) }) }) diff --git a/packages/browser/src/core/analytics/index.ts b/packages/browser/src/core/analytics/index.ts index 45454b08c..faf01d503 100644 --- a/packages/browser/src/core/analytics/index.ts +++ b/packages/browser/src/core/analytics/index.ts @@ -336,6 +336,7 @@ export class Analytics reset(): void { this._user.reset() this._group.reset() + this.emit('reset') } timeout(timeout: number): void {