Skip to content

Commit c910142

Browse files
committed
sort native breadcrumbs
1 parent 55e5c99 commit c910142

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

flutter/lib/src/integrations/load_contexts_integration.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,9 @@ class _LoadContextsIntegrationEventProcessor extends EventProcessor {
150150
);
151151
breadcrumbs.add(breadcrumb);
152152
}
153+
breadcrumbs.sort((a, b) {
154+
return a.timestamp.compareTo(b.timestamp);
155+
});
153156
event = event.copyWith(breadcrumbs: breadcrumbs);
154157
}
155158

flutter/test/integrations/load_contexts_integration_test.dart

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)