Skip to content

Commit acfa062

Browse files
committed
wip
1 parent 97d356c commit acfa062

File tree

5 files changed

+16
-20
lines changed

5 files changed

+16
-20
lines changed

packages/signals/signals-integration-tests/src/tests/signals-vanilla/index-page.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,8 @@ export class IndexPage extends BasePage {
2727
return this.page.evaluate(
2828
(args) => {
2929
window.signalsPlugin.addSignal({
30-
type: 'userDefined',
31-
// @ts-ignore
32-
data: {
33-
foo: 'bar',
34-
...args.data,
35-
},
30+
foo: 'bar',
31+
...args.data,
3632
})
3733
},
3834
{ data }
@@ -43,9 +39,7 @@ export class IndexPage extends BasePage {
4339
return this.page.click('#some-button')
4440
}
4541

46-
async clickComplexButton() {
47-
return this.page.click('#complex-button')
48-
}
42+
async clickComplexButton() {}
4943

5044
async clickInsideComplexButton() {
5145
return this.page.click('#complex-button h1')

packages/signals/signals-runtime/src/web/web-signals-types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ export interface PageData {
4444
/**
4545
* The base data that all web signal data must have
4646
*/
47-
interface BaseWebData {
47+
export interface BaseWebData {
4848
page: PageData
4949
}
5050

5151
export interface RawSignal<T extends SignalTypes, Data> extends BaseSignal {
5252
type: T
53-
data: Data & BaseWebData
53+
data: BaseWebData & Data
5454
metadata?: Record<string, any>
5555
}
5656
export type InteractionData = ClickData | SubmitData | ChangeData

packages/signals/signals/src/plugin/__tests__/signals-plugin.test.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ describe(SignalsPlugin, () => {
4242

4343
test('addSignal method emits signal', async () => {
4444
const plugin = new SignalsPlugin()
45-
const signal = createUserDefinedSignal({ foo: 'bar' })
4645
const emitterSpy = jest.spyOn(plugin.signals.signalEmitter, 'emit')
47-
plugin.addSignal(signal)
46+
const userDefinedData = { foo: 'bar' }
47+
plugin.addSignal(userDefinedData)
4848
expect(emitterSpy).toHaveBeenCalledTimes(1)
49-
expect(emitterSpy.mock.calls[0][0]).toEqual(signal)
49+
expect(emitterSpy.mock.calls[0][0]).toEqual(
50+
createUserDefinedSignal(userDefinedData)
51+
)
5052
})
5153
})

packages/signals/signals/src/plugin/signals-plugin.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { AnyAnalytics, SignalsPluginSettingsConfig } from '../types'
55
import { Signal } from '@segment/analytics-signals-runtime'
66
import { assertBrowserEnv } from '../lib/assert-browser-env'
77
import { version } from '../generated/version'
8-
import { getPageData } from '../lib/page-data'
8+
import { createUserDefinedSignal } from '../types/factories'
99

1010
export type OnSignalCb = (signal: Signal) => void
1111

@@ -17,9 +17,9 @@ interface SignalsAugmentedFunctionality {
1717
onSignal: (fn: OnSignalCb) => this
1818

1919
/**
20-
* Emit/add a custom signal
20+
* Emit/add a custom signal of type 'userDefined'
2121
*/
22-
addSignal(data: Signal): this
22+
addSignal(userDefinedData: Record<string, unknown>): this
2323
}
2424

2525
export class SignalsPlugin implements Plugin, SignalsAugmentedFunctionality {
@@ -83,9 +83,8 @@ export class SignalsPlugin implements Plugin, SignalsAugmentedFunctionality {
8383
return this
8484
}
8585

86-
addSignal(signal: Signal): this {
87-
signal.data.page ??= getPageData()
88-
this.signals.signalEmitter.emit(signal)
86+
addSignal(data: Record<string, unknown>): this {
87+
this.signals.signalEmitter.emit(createUserDefinedSignal(data))
8988
return this
9089
}
9190

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import { PageData, Signal } from '@segment/analytics-signals-runtime'

0 commit comments

Comments
 (0)