@@ -169,3 +169,61 @@ pub fn normalize_measurements(event: &mut Event, operation_name_breakdown: &Opti
169169 ) ;
170170 }
171171}
172+
173+ #[ cfg( test) ]
174+ mod tests {
175+ use super :: * ;
176+ use crate :: types:: { Annotated , Object } ;
177+
178+ #[ test]
179+ fn test_skip_no_measurements ( ) {
180+ let mut event = Event :: default ( ) ;
181+ normalize_measurements ( & mut event, & None ) ;
182+ assert_eq ! ( event. measurements. value( ) , None ) ;
183+ }
184+
185+ #[ test]
186+ fn test_remove_measurements_for_non_transaction_events ( ) {
187+ let measurements = Annotated :: new ( Measurements ( {
188+ let mut measurements = Object :: new ( ) ;
189+ measurements. insert (
190+ "lcp" . to_owned ( ) ,
191+ Annotated :: new ( Measurement {
192+ value : Annotated :: new ( 420.69 ) ,
193+ } ) ,
194+ ) ;
195+
196+ measurements
197+ } ) ) ;
198+
199+ let mut event = Event {
200+ measurements,
201+ ..Default :: default ( )
202+ } ;
203+ normalize_measurements ( & mut event, & None ) ;
204+ assert_eq ! ( event. measurements. value( ) , None ) ;
205+ }
206+
207+ #[ test]
208+ fn test_noop_measurements_transaction_events ( ) {
209+ let measurements = Measurements ( {
210+ let mut measurements = Object :: new ( ) ;
211+ measurements. insert (
212+ "lcp" . to_owned ( ) ,
213+ Annotated :: new ( Measurement {
214+ value : Annotated :: new ( 420.69 ) ,
215+ } ) ,
216+ ) ;
217+
218+ measurements
219+ } ) ;
220+
221+ let mut event = Event {
222+ ty : EventType :: Transaction . into ( ) ,
223+ measurements : measurements. clone ( ) . into ( ) ,
224+ ..Default :: default ( )
225+ } ;
226+ normalize_measurements ( & mut event, & None ) ;
227+ assert_eq ! ( event. measurements. into_value( ) . unwrap( ) , measurements) ;
228+ }
229+ }
0 commit comments