Skip to content

Commit

Permalink
add cloning
Browse files Browse the repository at this point in the history
  • Loading branch information
silesky committed Jul 10, 2024
1 parent 6423853 commit 8042381
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
11 changes: 11 additions & 0 deletions packages/signals/signals/src/core/client/__tests__/redact.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,15 @@ describe(redactSignalData, () => {
})
expect(redactSignalData(signal)).toEqual(expected)
})

it('should not mutate the original signal object', () => {
const originalSignal = createInteractionSignal({
eventType: 'click',
target: { value: 'sensitiveData' },
})
const originalSignalCopy = JSON.parse(JSON.stringify(originalSignal))

redactSignalData(originalSignal)
expect(originalSignal).toEqual(originalSignalCopy)
})
})
3 changes: 2 additions & 1 deletion packages/signals/signals/src/core/client/redact.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Signal } from '../../types'

export const redactSignalData = (signal: Signal): Signal => {
export const redactSignalData = (signalArg: Signal): Signal => {
const signal = structuredClone(signalArg)
if (signal.type === 'instrumentation' || signal.type === 'userDefined') {
return signal
} else if (signal.type === 'interaction') {
Expand Down

0 comments on commit 8042381

Please sign in to comment.