Skip to content

Commit a606145

Browse files
committed
set sent_at in http_transport
1 parent fdcec41 commit a606145

File tree

2 files changed

+32
-7
lines changed

2 files changed

+32
-7
lines changed

dart/lib/src/transport/http_transport.dart

+4-7
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class HttpTransport implements Transport {
5555
if (filteredEnvelope == null) {
5656
return SentryId.empty();
5757
}
58+
filteredEnvelope.header.sentAt = _options.clock();
5859

5960
final streamedRequest = await _createStreamedRequest(filteredEnvelope);
6061
final response = await _options.httpClient
@@ -134,11 +135,9 @@ class HttpTransport implements Transport {
134135
class _CredentialBuilder {
135136
final String _authHeader;
136137

137-
_CredentialBuilder._(String authHeader)
138-
: _authHeader = authHeader;
138+
_CredentialBuilder._(String authHeader) : _authHeader = authHeader;
139139

140-
factory _CredentialBuilder(
141-
Dsn dsn, String sdkIdentifier) {
140+
factory _CredentialBuilder(Dsn dsn, String sdkIdentifier) {
142141
final authHeader = _buildAuthHeader(
143142
publicKey: dsn.publicKey,
144143
secretKey: dsn.secretKey,
@@ -166,9 +165,7 @@ class _CredentialBuilder {
166165
Map<String, String> configure(Map<String, String> headers) {
167166
return headers
168167
..addAll(
169-
<String, String>{
170-
'X-Sentry-Auth': _authHeader
171-
},
168+
<String, String>{'X-Sentry-Auth': _authHeader},
172169
);
173170
}
174171
}

dart/test/transport/http_transport_test.dart

+28
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,31 @@ void main() {
159159
});
160160
});
161161

162+
group('sent_at', () {
163+
late Fixture fixture;
164+
165+
setUp(() {
166+
fixture = Fixture();
167+
});
168+
169+
test('capture envelope sets sent_at in header', () async {
170+
final sentryEvent = SentryEvent();
171+
final envelope = SentryEnvelope.fromEvent(
172+
sentryEvent,
173+
fixture.options.sdk,
174+
dsn: fixture.options.dsn,
175+
);
176+
177+
final httpMock = MockClient((http.Request request) async {
178+
return http.Response('{}', 200);
179+
});
180+
final sut = fixture.getSut(httpMock, MockRateLimiter());
181+
await sut.send(envelope);
182+
183+
expect(envelope.header.sentAt, DateTime.utc(2019));
184+
});
185+
});
186+
162187
group('client reports', () {
163188
late Fixture fixture;
164189

@@ -232,6 +257,9 @@ class Fixture {
232257
HttpTransport getSut(http.Client client, RateLimiter rateLimiter) {
233258
options.httpClient = client;
234259
options.recorder = clientReportRecorder;
260+
options.clock = () {
261+
return DateTime.utc(2019);
262+
};
235263
return HttpTransport(options, rateLimiter);
236264
}
237265
}

0 commit comments

Comments
 (0)