1- import { afterEach , describe , expect , test , vi } from 'vitest' ;
2- import {
3- addHandler ,
4- maybeInstrument ,
5- resetInstrumentationHandlers ,
6- triggerHandlers ,
7- } from '../../../src/instrument/handlers' ;
8-
9- afterEach ( ( ) => {
10- resetInstrumentationHandlers ( ) ;
11- } ) ;
1+ import { describe , test } from 'vitest' ;
2+ import { maybeInstrument } from '../../../src/instrument/handlers' ;
123
134describe ( 'maybeInstrument' , ( ) => {
145 test ( 'does not throw when instrumenting fails' , ( ) => {
@@ -21,89 +12,3 @@ describe('maybeInstrument', () => {
2112 maybeInstrument ( 'xhr' , undefined as any ) ;
2213 } ) ;
2314} ) ;
24-
25- describe ( 'addHandler' , ( ) => {
26- test ( 'returns an unsubscribe function' , ( ) => {
27- const handler = vi . fn ( ) ;
28- const unsubscribe = addHandler ( 'fetch' , handler ) ;
29-
30- expect ( typeof unsubscribe ) . toBe ( 'function' ) ;
31- } ) ;
32-
33- test ( 'handler is called when triggerHandlers is invoked' , ( ) => {
34- const handler = vi . fn ( ) ;
35- addHandler ( 'fetch' , handler ) ;
36-
37- triggerHandlers ( 'fetch' , { url : 'https://example.com' } ) ;
38-
39- expect ( handler ) . toHaveBeenCalledTimes ( 1 ) ;
40- expect ( handler ) . toHaveBeenCalledWith ( { url : 'https://example.com' } ) ;
41- } ) ;
42-
43- test ( 'unsubscribe removes the handler' , ( ) => {
44- const handler = vi . fn ( ) ;
45- const unsubscribe = addHandler ( 'fetch' , handler ) ;
46-
47- triggerHandlers ( 'fetch' , { test : 1 } ) ;
48- expect ( handler ) . toHaveBeenCalledTimes ( 1 ) ;
49-
50- unsubscribe ( ) ;
51-
52- triggerHandlers ( 'fetch' , { test : 2 } ) ;
53- expect ( handler ) . toHaveBeenCalledTimes ( 1 ) ;
54- } ) ;
55-
56- test ( 'unsubscribe only removes the specific handler' , ( ) => {
57- const handler1 = vi . fn ( ) ;
58- const handler2 = vi . fn ( ) ;
59-
60- const unsubscribe1 = addHandler ( 'fetch' , handler1 ) ;
61- addHandler ( 'fetch' , handler2 ) ;
62-
63- triggerHandlers ( 'fetch' , { test : 1 } ) ;
64- expect ( handler1 ) . toHaveBeenCalledTimes ( 1 ) ;
65- expect ( handler2 ) . toHaveBeenCalledTimes ( 1 ) ;
66-
67- unsubscribe1 ( ) ;
68-
69- triggerHandlers ( 'fetch' , { test : 2 } ) ;
70- expect ( handler1 ) . toHaveBeenCalledTimes ( 1 ) ;
71- expect ( handler2 ) . toHaveBeenCalledTimes ( 2 ) ;
72- } ) ;
73-
74- test ( 'calling unsubscribe multiple times is safe' , ( ) => {
75- const handler = vi . fn ( ) ;
76- const unsubscribe = addHandler ( 'fetch' , handler ) ;
77-
78- unsubscribe ( ) ;
79- expect ( ( ) => unsubscribe ( ) ) . not . toThrow ( ) ;
80- expect ( ( ) => unsubscribe ( ) ) . not . toThrow ( ) ;
81- } ) ;
82-
83- test ( 'unsubscribe works with different handler types' , ( ) => {
84- const consoleHandler = vi . fn ( ) ;
85- const fetchHandler = vi . fn ( ) ;
86-
87- const unsubscribeConsole = addHandler ( 'console' , consoleHandler ) ;
88- const unsubscribeFetch = addHandler ( 'fetch' , fetchHandler ) ;
89-
90- triggerHandlers ( 'console' , { level : 'log' } ) ;
91- triggerHandlers ( 'fetch' , { url : 'test' } ) ;
92-
93- expect ( consoleHandler ) . toHaveBeenCalledTimes ( 1 ) ;
94- expect ( fetchHandler ) . toHaveBeenCalledTimes ( 1 ) ;
95-
96- unsubscribeConsole ( ) ;
97-
98- triggerHandlers ( 'console' , { level : 'warn' } ) ;
99- triggerHandlers ( 'fetch' , { url : 'test2' } ) ;
100-
101- expect ( consoleHandler ) . toHaveBeenCalledTimes ( 1 ) ;
102- expect ( fetchHandler ) . toHaveBeenCalledTimes ( 2 ) ;
103-
104- unsubscribeFetch ( ) ;
105-
106- triggerHandlers ( 'fetch' , { url : 'test3' } ) ;
107- expect ( fetchHandler ) . toHaveBeenCalledTimes ( 2 ) ;
108- } ) ;
109- } ) ;
0 commit comments