Skip to content

Commit 30a8b4d

Browse files
committed
wip
1 parent 207b963 commit 30a8b4d

File tree

5 files changed

+77
-48
lines changed

5 files changed

+77
-48
lines changed

packages/signals/signals-runtime/editor/mobile-editor.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ interface NetworkData {
5757
}
5858
interface NetworkSignal extends RawSignal<"network"> {
5959
data: NetworkData;
60+
[key: string]: unknown;
6061
}
6162
interface LocalData {
6263
action: LocalDataAction;

packages/signals/signals/src/core/processor/__tests__/signals-runtime.test.ts renamed to packages/signals/signals-runtime/src/__tests__/signals-runtime.test.ts

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,27 @@ import {
22
InstrumentationSignal,
33
InteractionSignal,
44
SignalsRuntime,
5-
} from '../../../types'
5+
Signal,
6+
} from '../index'
67
import {
7-
createInstrumentationSignal,
8-
createInteractionSignal,
9-
} from '../../../types/factories'
10-
import { createSignalsRuntime } from '../signals-runtime'
8+
mockInstrumentationSignal,
9+
mockInteractionSignal,
10+
} from '../test-helpers/mocks/mock-signal-types-web'
1111

12-
describe('SignalsRuntime', () => {
13-
let signalsRuntime: SignalsRuntime
12+
describe(SignalsRuntime, () => {
13+
let signalsRuntime: SignalsRuntime<Signal>
1414
let signal1: InstrumentationSignal
1515
let signal2: InteractionSignal
1616
let signal3: InteractionSignal
1717

1818
beforeEach(() => {
19-
signal1 = createInstrumentationSignal({ type: 'track' })
20-
signal2 = createInteractionSignal({ eventType: 'submit', submitter: {} })
21-
signal3 = createInteractionSignal({ eventType: 'change', target: {} })
22-
signalsRuntime = createSignalsRuntime([signal1, signal2, signal3])
19+
signal1 = mockInstrumentationSignal
20+
signal2 = mockInteractionSignal
21+
signal3 = {
22+
...mockInteractionSignal,
23+
data: { eventType: 'change', target: {} },
24+
}
25+
signalsRuntime = new SignalsRuntime<Signal>([signal1, signal2, signal3])
2326
})
2427

2528
describe('find', () => {
@@ -47,16 +50,4 @@ describe('SignalsRuntime', () => {
4750
expect(result).toEqual(signal2)
4851
})
4952
})
50-
51-
describe('filter', () => {
52-
it('should filter signals based on the provided function', () => {
53-
const result = signalsRuntime.filter(signal1, 'interaction')
54-
expect(result).toEqual([signal2, signal3])
55-
})
56-
57-
it('should return empty array if there are no following signals that match the query', () => {
58-
const result = signalsRuntime.filter(signal1, 'instrumentation')
59-
expect(result).toEqual([])
60-
})
61-
})
6253
})
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import {
2+
InteractionSignal,
3+
NavigationSignal,
4+
InstrumentationSignal,
5+
UserDefinedSignal,
6+
NetworkSignal,
7+
} from '../../web/web-signals-types'
8+
// Mock data for testing
9+
export const mockInteractionSignal: InteractionSignal = {
10+
type: 'interaction',
11+
data: {
12+
eventType: 'click',
13+
target: { id: 'button1', className: 'btn-primary' },
14+
},
15+
metadata: { timestamp: Date.now() },
16+
}
17+
18+
export const mockNavigationSignal: NavigationSignal = {
19+
type: 'navigation',
20+
data: {
21+
action: 'urlChange',
22+
url: 'https://example.com',
23+
hash: '#section1',
24+
prevUrl: 'https://example.com/home',
25+
},
26+
metadata: { timestamp: Date.now() },
27+
}
28+
29+
export const mockInstrumentationSignal: InstrumentationSignal = {
30+
type: 'instrumentation',
31+
data: {
32+
rawEvent: { type: 'customEvent', detail: 'example' },
33+
},
34+
metadata: { timestamp: Date.now() },
35+
}
36+
37+
export const mockNetworkSignal: NetworkSignal = {
38+
type: 'network',
39+
data: {
40+
action: 'request',
41+
url: 'https://api.example.com/data',
42+
method: 'GET',
43+
data: { key: 'value' },
44+
},
45+
metadata: { timestamp: Date.now() },
46+
}
47+
48+
export const mockUserDefinedSignal: UserDefinedSignal = {
49+
type: 'userDefined',
50+
data: {
51+
customField: 'customValue',
52+
},
53+
metadata: { timestamp: Date.now() },
54+
}

packages/signals/signals/src/core/client/__tests__/redact.test.ts

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
import {
2-
createInstrumentationSignal,
3-
createInteractionSignal,
4-
createNetworkSignal,
5-
NetworkSignalMetadata,
6-
} from '../../../types'
1+
import { NetworkSignalMetadata } from '../../../types'
2+
import * as factories from '../../../types/factories'
73
import { redactJsonValues, redactSignalData } from '../redact'
84

95
describe(redactJsonValues, () => {
@@ -69,7 +65,7 @@ describe(redactSignalData, () => {
6965
},
7066
}
7167
it('should return the signal as is if the type is "instrumentation"', () => {
72-
const signal = createInstrumentationSignal({
68+
const signal = factories.createInstrumentationSignal({
7369
foo: 123,
7470
} as any)
7571
expect(redactSignalData(signal)).toEqual(signal)
@@ -81,19 +77,19 @@ describe(redactSignalData, () => {
8177
})
8278

8379
it('should redact the value in the "target" property if the type is "interaction"', () => {
84-
const signal = createInteractionSignal({
80+
const signal = factories.createInteractionSignal({
8581
eventType: 'change',
8682
target: { value: 'secret' },
8783
})
88-
const expected = createInteractionSignal({
84+
const expected = factories.createInteractionSignal({
8985
eventType: 'change',
9086
target: { value: 'XXX' },
9187
})
9288
expect(redactSignalData(signal)).toEqual(expected)
9389
})
9490

9591
it('should redact the values in the "data" property if the type is "network"', () => {
96-
const signal = createNetworkSignal(
92+
const signal = factories.createNetworkSignal(
9793
{
9894
action: 'request',
9995
method: 'post',
@@ -102,7 +98,7 @@ describe(redactSignalData, () => {
10298
},
10399
metadataFixture
104100
)
105-
const expected = createNetworkSignal(
101+
const expected = factories.createNetworkSignal(
106102
{
107103
action: 'request',
108104
method: 'post',
@@ -115,7 +111,7 @@ describe(redactSignalData, () => {
115111
})
116112

117113
it('should not mutate the original signal object', () => {
118-
const originalSignal = createInteractionSignal({
114+
const originalSignal = factories.createInteractionSignal({
119115
eventType: 'click',
120116
target: { value: 'sensitiveData' },
121117
})

packages/signals/signals/src/core/processor/signals-runtime.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)