Skip to content

Commit dfa3550

Browse files
committed
πŸ‘Œ Restore VIEW_UPDATE in RumEventType enum
1 parent 9d8a02a commit dfa3550

5 files changed

Lines changed: 50 additions & 17 deletions

File tree

β€Žpackages/rum-core/src/domain/assembly.spec.tsβ€Ž

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -436,27 +436,29 @@ describe('rum assembly', () => {
436436
describe('service and version', () => {
437437
const extraConfigurationOptions = { service: 'default-service', version: 'default-version' }
438438

439-
Object.values(RumEventType).forEach((eventType) => {
440-
it(`should be modifiable for ${eventType}`, () => {
441-
const { lifeCycle, serverRumEvents } = setupAssemblyTestWithDefaults({
442-
partialConfiguration: {
443-
...extraConfigurationOptions,
444-
beforeSend: (event) => {
445-
event.service = 'bar'
446-
event.version = '0.2.0'
439+
Object.values(RumEventType)
440+
.filter((eventType) => eventType !== RumEventType.VIEW_UPDATE)
441+
.forEach((eventType) => {
442+
it(`should be modifiable for ${eventType}`, () => {
443+
const { lifeCycle, serverRumEvents } = setupAssemblyTestWithDefaults({
444+
partialConfiguration: {
445+
...extraConfigurationOptions,
446+
beforeSend: (event) => {
447+
event.service = 'bar'
448+
event.version = '0.2.0'
447449

448-
return true
450+
return true
451+
},
449452
},
450-
},
451-
})
453+
})
452454

453-
notifyRawRumEvent(lifeCycle, {
454-
rawRumEvent: createRawRumEvent(eventType),
455+
notifyRawRumEvent(lifeCycle, {
456+
rawRumEvent: createRawRumEvent(eventType),
457+
})
458+
expect((serverRumEvents[0] as RumResourceEvent).service).toBe('bar')
459+
expect((serverRumEvents[0] as RumResourceEvent).version).toBe('0.2.0')
455460
})
456-
expect((serverRumEvents[0] as RumResourceEvent).service).toBe('bar')
457-
expect((serverRumEvents[0] as RumResourceEvent).version).toBe('0.2.0')
458461
})
459-
})
460462

461463
it('should be added to the event as ddtags', () => {
462464
const { lifeCycle, serverRumEvents } = setupAssemblyTestWithDefaults({

β€Žpackages/rum-core/src/domain/assembly.tsβ€Ž

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ export function startRumAssembly(
4949
...VIEW_MODIFIABLE_FIELD_PATHS,
5050
...ROOT_MODIFIABLE_FIELD_PATHS,
5151
},
52+
// view_update events are created post-assembly in startRumBatch.ts and never reach this pipeline.
53+
// The full view already went through assembly (as RumEventType.VIEW), so any beforeSend
54+
// modifications (e.g. PII scrubbing) are already reflected in the view_update diff.
55+
[RumEventType.VIEW_UPDATE]: {},
5256
[RumEventType.ERROR]: {
5357
'error.message': 'string',
5458
'error.stack': 'string',

β€Žpackages/rum-core/src/rawRumEvent.types.tsβ€Ž

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export const RumEventType = {
2626
ERROR: 'error',
2727
LONG_TASK: 'long_task',
2828
VIEW: 'view',
29+
VIEW_UPDATE: 'view_update',
2930
RESOURCE: 'resource',
3031
VITAL: 'vital',
3132
} as const
@@ -180,6 +181,19 @@ export interface RawRumViewEvent {
180181
}
181182
}
182183

184+
export interface RawRumViewUpdateEvent {
185+
date: TimeStamp
186+
type: typeof RumEventType.VIEW_UPDATE
187+
view: Partial<RawRumViewEvent['view']>
188+
_dd: Partial<RawRumViewEvent['_dd']> & {
189+
document_version: number
190+
}
191+
display?: Partial<ViewDisplay>
192+
privacy?: RawRumViewEvent['privacy']
193+
device?: RawRumViewEvent['device']
194+
feature_flags?: Context
195+
}
196+
183197
interface ViewDisplay {
184198
scroll: {
185199
max_depth?: number
@@ -403,6 +417,7 @@ export type RawRumEvent =
403417
| RawRumErrorEvent
404418
| RawRumResourceEvent
405419
| RawRumViewEvent
420+
| RawRumViewUpdateEvent
406421
| RawRumLongTaskEvent
407422
| RawRumLongAnimationFrameEvent
408423
| RawRumActionEvent

β€Žpackages/rum-core/src/transport/startRumBatch.tsβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export function assembleViewUpdateEvent(
4646

4747
// Restore the ignoreKeys β€” backend needs them on every event
4848
return combine(diff, {
49-
type: 'view_update' as const,
49+
type: RumEventType.VIEW_UPDATE,
5050
date: current.date,
5151
application: current.application,
5252
session: current.session,

β€Žpackages/rum-core/test/fixtures.tsβ€Ž

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,18 @@ export function createRawRumEvent(type: RumEventType, overrides?: Context): RawR
119119
},
120120
overrides
121121
)
122+
case RumEventType.VIEW_UPDATE:
123+
return combine(
124+
{
125+
type,
126+
date: 0 as TimeStamp,
127+
view: {},
128+
_dd: {
129+
document_version: 1,
130+
},
131+
},
132+
overrides
133+
)
122134
}
123135
}
124136

0 commit comments

Comments
Β (0)