diff --git a/.changeset/hip-cameras-brake.md b/.changeset/hip-cameras-brake.md new file mode 100644 index 000000000..4cf2bf211 --- /dev/null +++ b/.changeset/hip-cameras-brake.md @@ -0,0 +1,5 @@ +--- +'@segment/analytics-next': patch +--- + +Support addSourceMiddleware for screen events diff --git a/packages/browser/src/browser/__tests__/integration.test.ts b/packages/browser/src/browser/__tests__/integration.test.ts index bfdb46be8..9d99855d1 100644 --- a/packages/browser/src/browser/__tests__/integration.test.ts +++ b/packages/browser/src/browser/__tests__/integration.test.ts @@ -789,28 +789,31 @@ describe('setAnonymousId', () => { }) describe('addSourceMiddleware', () => { - it('supports registering source middlewares', async () => { - const [analytics] = await AnalyticsBrowser.load({ - writeKey, - }) - - await analytics - .addSourceMiddleware(({ next, payload }) => { - payload.obj.context = { - hello: 'from the other side', - } - next(payload) - }) - .catch((err) => { - throw err + it.each(['track', 'screen'] as const)( + 'supports registering source middlewares for %s', + async (type) => { + const [analytics] = await AnalyticsBrowser.load({ + writeKey, }) - const ctx = await analytics.track('Hello!') - - expect(ctx.event.context).toMatchObject({ - hello: 'from the other side', - }) - }) + await analytics + .addSourceMiddleware(({ next, payload }) => { + payload.obj.context = { + hello: 'from the other side', + } + next(payload) + }) + .catch((err) => { + throw err + }) + + const ctx = await analytics[type]('Hello!') + + expect(ctx.event.context).toMatchObject({ + hello: 'from the other side', + }) + } + ) }) describe('addDestinationMiddleware', () => { diff --git a/packages/browser/src/plugins/middleware/index.ts b/packages/browser/src/plugins/middleware/index.ts index 9aa9c65ad..66c2a84f3 100644 --- a/packages/browser/src/plugins/middleware/index.ts +++ b/packages/browser/src/plugins/middleware/index.ts @@ -124,6 +124,7 @@ export function sourceMiddlewarePlugin( track: apply, page: apply, + screen: apply, identify: apply, alias: apply, group: apply,