@@ -85,6 +85,34 @@ void main() {
8585 expect (event.breadcrumbs! .length, 1 );
8686 expect (event.breadcrumbs! .first.message, 'event' );
8787 });
88+
89+ test ('should sort native breadcrumbs by timestamp' , () async {
90+ fixture.options.enableScopeSync = true ;
91+
92+ final beforeCrumb = Breadcrumb (
93+ message: 'before' , timestamp: DateTime .fromMicrosecondsSinceEpoch (0 ));
94+ final afterCrumb = Breadcrumb (
95+ message: 'after' ,
96+ timestamp: DateTime .fromMicrosecondsSinceEpoch (1000 ));
97+ Map <String , dynamic > loadContexts = {
98+ 'breadcrumbs' : [afterCrumb.toJson (), beforeCrumb.toJson ()]
99+ };
100+
101+ var event = SentryEvent (breadcrumbs: []);
102+
103+ final future = Future .value (loadContexts);
104+ when (fixture.methodChannel.invokeMethod <dynamic >('loadContexts' ))
105+ .thenAnswer ((_) => future);
106+ _channel.setMockMethodCallHandler ((MethodCall methodCall) async {});
107+
108+ final integration = LoadContextsIntegration (fixture.methodChannel);
109+ integration.call (fixture.hub, fixture.options);
110+ event = (await fixture.options.eventProcessors.first.apply (event))! ;
111+
112+ expect (event.breadcrumbs! .length, 2 );
113+ expect (event.breadcrumbs! [0 ].message, 'before' );
114+ expect (event.breadcrumbs! [1 ].message, 'after' );
115+ });
88116 });
89117}
90118
0 commit comments