Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dart/lib/src/sentry_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ class SentryClient {
final envelope = SentryEnvelope.fromEvent(
preparedEvent,
_options.sdk,
_options.dsn,
attachments: scope?.attachements,
);

Expand Down
9 changes: 5 additions & 4 deletions dart/lib/src/sentry_envelope.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@ class SentryEnvelope {
/// Create an [SentryEnvelope] with containing one [SentryEnvelopeItem] which holds the [SentryEvent] data.
factory SentryEnvelope.fromEvent(
SentryEvent event,
SdkVersion sdkVersion, {
SdkVersion sdkVersion,
String? dsn, {
List<SentryAttachment>? attachments,
}) {
return SentryEnvelope(
SentryEnvelopeHeader(event.eventId, sdkVersion),
SentryEnvelopeHeader(event.eventId, sdkVersion, dsn),
[
SentryEnvelopeItem.fromEvent(event),
if (attachments != null)
Expand All @@ -39,7 +40,7 @@ class SentryEnvelope {
SdkVersion sdkVersion,
) {
return SentryEnvelope(
SentryEnvelopeHeader(feedback.eventId, sdkVersion),
SentryEnvelopeHeader(feedback.eventId, sdkVersion, null),
[SentryEnvelopeItem.fromUserFeedback(feedback)],
);
}
Expand All @@ -51,7 +52,7 @@ class SentryEnvelope {
List<SentryAttachment>? attachments,
}) {
return SentryEnvelope(
SentryEnvelopeHeader(transaction.eventId, sdkVersion),
SentryEnvelopeHeader(transaction.eventId, sdkVersion, null),
[
SentryEnvelopeItem.fromTransaction(transaction),
if (attachments != null)
Expand Down
11 changes: 9 additions & 2 deletions dart/lib/src/sentry_envelope_header.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,21 @@ import 'protocol/sdk_version.dart';

/// Header containing `SentryId` and `SdkVersion`.
class SentryEnvelopeHeader {
SentryEnvelopeHeader(this.eventId, this.sdkVersion);
SentryEnvelopeHeader(this.eventId, this.sdkVersion, this.dsn);
SentryEnvelopeHeader.newEventId()
: eventId = SentryId.newId(),
sdkVersion = null;
sdkVersion = null,
dsn = null;

/// The identifier of encoded `SentryEvent`.
final SentryId? eventId;

/// The `SdkVersion` with which the envelope was send.
final SdkVersion? sdkVersion;

/// The `DSN` of the Sentry project.
final String? dsn;

/// Header encoded as JSON
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
Expand All @@ -25,6 +29,9 @@ class SentryEnvelopeHeader {
if (tempSdkVersion != null) {
json['sdk'] = tempSdkVersion.toJson();
}
if (dsn != null) {
json['dsn'] = dsn;
}
return json;
}
}
5 changes: 4 additions & 1 deletion dart/test/mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,10 @@ typedef EventProcessorFunction = FutureOr<SentryEvent?>
Function(SentryEvent event, {dynamic hint});

var fakeEnvelope = SentryEnvelope.fromEvent(
fakeEvent, SdkVersion(name: 'sdk1', version: '1.0.0'));
fakeEvent,
SdkVersion(name: 'sdk1', version: '1.0.0'),
fakeDsn,
);

class MockRateLimiter implements RateLimiter {
bool filterReturnsNull = false;
Expand Down
4 changes: 2 additions & 2 deletions dart/test/sentry_envelope_header_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:test/test.dart';
void main() {
group('SentryEnvelopeHeader', () {
test('toJson empty', () {
final sut = SentryEnvelopeHeader(null, null);
final sut = SentryEnvelopeHeader(null, null, null);
final expected = <String, dynamic>{};
expect(sut.toJson(), expected);
});
Expand All @@ -16,7 +16,7 @@ void main() {
name: 'fixture-sdkName',
version: 'fixture-version',
);
final sut = SentryEnvelopeHeader(eventId, sdkVersion);
final sut = SentryEnvelopeHeader(eventId, sdkVersion, null);
final expextedSkd = sdkVersion.toJson();
final expected = <String, dynamic>{
'event_id': eventId.toString(),
Expand Down
11 changes: 9 additions & 2 deletions dart/test/sentry_envelope_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void main() {

final item = SentryEnvelopeItem(itemHeader, dataFactory);

final header = SentryEnvelopeHeader(eventId, null);
final header = SentryEnvelopeHeader(eventId, null, null);
final sut = SentryEnvelope(header, [item, item]);

final expectedHeaderJson = header.toJson();
Expand All @@ -53,7 +53,9 @@ void main() {
final sentryEvent = SentryEvent(eventId: eventId);
final sdkVersion =
SdkVersion(name: 'fixture-name', version: 'fixture-version');
final sut = SentryEnvelope.fromEvent(sentryEvent, sdkVersion);
final fakeDsn = 'https://[email protected]/1234567';
final sut =
SentryEnvelope.fromEvent(sentryEvent, sdkVersion, fakeDsn);

final expectedEnvelopeItem = SentryEnvelopeItem.fromEvent(sentryEvent);

Expand Down Expand Up @@ -111,16 +113,19 @@ void main() {
final sentryEvent = SentryEvent(eventId: eventId);
final sdkVersion =
SdkVersion(name: 'fixture-name', version: 'fixture-version');
final fakeDsn = 'https://[email protected]/1234567';

final sut = SentryEnvelope.fromEvent(
sentryEvent,
sdkVersion,
fakeDsn,
attachments: [attachment],
);

final expectedEnvelopeItem = SentryEnvelope.fromEvent(
sentryEvent,
sdkVersion,
fakeDsn,
);

final sutEnvelopeData = <int>[];
Expand All @@ -140,12 +145,14 @@ void main() {
// This is a test for https://github.com/getsentry/sentry-dart/issues/523
test('serialize with non-serializable class', () async {
final event = SentryEvent(extra: {'non-ecodable': NonEncodable()});
final fakeDsn = 'https://[email protected]/1234567';
final sut = SentryEnvelope.fromEvent(
event,
SdkVersion(
name: 'test',
version: '1',
),
fakeDsn,
);

final _ = sut.envelopeStream(SentryOptions()).map((e) => e);
Expand Down
4 changes: 3 additions & 1 deletion dart/test/sentry_envelope_vm_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void main() {

final eventId = SentryId.fromId('3b382f22ee67491f80f7dee18016a7b1');
final sdkVersion = SdkVersion(name: 'test', version: 'version');
final header = SentryEnvelopeHeader(eventId, sdkVersion);
final header = SentryEnvelopeHeader(eventId, sdkVersion, null);
final envelope = SentryEnvelope(header, [attachmentItem]);

final envelopeData = <int>[];
Expand All @@ -51,10 +51,12 @@ void main() {
final sdkVersion = SdkVersion(name: '', version: '');
final attachment =
IoSentryAttachment.fromPath('this_path_does_not_exist.txt');
final fakeDsn = 'https://[email protected]/1234567';

final envelope = SentryEnvelope.fromEvent(
event,
sdkVersion,
fakeDsn,
attachments: [attachment],
);

Expand Down
14 changes: 9 additions & 5 deletions dart/test/transport/http_transport_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import '../mocks.dart';

void main() {
SentryEnvelope givenEnvelope() {
final filteredEnvelopeHeader = SentryEnvelopeHeader(SentryId.empty(), null);
final filteredEnvelopeHeader = SentryEnvelopeHeader(SentryId.empty(), null, null);
final filteredItemHeader =
SentryEnvelopeItemHeader(SentryItemType.event, () async {
return 2;
Expand Down Expand Up @@ -66,8 +66,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
await sut.send(envelope);

final envelopeData = <int>[];
Expand All @@ -90,8 +91,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
final eventId = await sut.send(envelope);

expect(eventId, SentryId.empty());
Expand All @@ -114,8 +116,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
await sut.send(envelope);

expect(mockRateLimiter.envelopeToFilter?.header.eventId,
Expand All @@ -135,8 +138,9 @@ void main() {
final sut = fixture.getSut(httpMock, mockRateLimiter);

final sentryEvent = SentryEvent();
final fakeDsn = 'https://[email protected]/1234567';
final envelope =
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk);
SentryEnvelope.fromEvent(sentryEvent, fixture.options.sdk, fakeDsn);
await sut.send(envelope);

expect(mockRateLimiter.errorCode, 200);
Expand Down
3 changes: 3 additions & 0 deletions dio/test/mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,12 @@ class FunctionEventProcessor extends EventProcessor {
typedef EventProcessorFunction = FutureOr<SentryEvent?>
Function(SentryEvent event, {dynamic hint});

final fakeDsn = 'https://[email protected]/1234567';

var fakeEnvelope = SentryEnvelope.fromEvent(
fakeEvent,
SdkVersion(name: 'sdk1', version: '1.0.0'),
fakeDsn,
);

class MockRateLimiter implements RateLimiter {
Expand Down
3 changes: 2 additions & 1 deletion flutter/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ dependencies:
sdk: flutter
flutter_web_plugins:
sdk: flutter
sentry: ^6.5.1
sentry:
path: ../dart
package_info_plus: ^1.0.0
meta: ^1.3.0

Expand Down
9 changes: 6 additions & 3 deletions flutter/test/file_system_transport_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ void main() {
final event = SentryEvent();
final sdkVersion =
SdkVersion(name: 'fixture-sdkName', version: 'fixture-sdkVersion');
final fakeDsn = 'https://[email protected]/1234567';

final envelope = SentryEnvelope.fromEvent(event, sdkVersion);
final envelope = SentryEnvelope.fromEvent(event, sdkVersion, fakeDsn);
final sentryId = await transport.send(envelope);

expect(sentryId, sentryId);
Expand All @@ -44,8 +45,9 @@ void main() {
final event = SentryEvent();
final sdkVersion =
SdkVersion(name: 'fixture-sdkName', version: 'fixture-sdkVersion');
final fakeDsn = 'https://[email protected]/1234567';

final envelope = SentryEnvelope.fromEvent(event, sdkVersion);
final envelope = SentryEnvelope.fromEvent(event, sdkVersion, fakeDsn);
final sentryId = await transport.send(envelope);

expect(SentryId.empty(), sentryId);
Expand All @@ -63,7 +65,8 @@ void main() {
SentryEvent(message: SentryMessage('hi I am a special char ◤'));
final sdkVersion =
SdkVersion(name: 'fixture-sdkName', version: 'fixture-sdkVersion');
final envelope = SentryEnvelope.fromEvent(event, sdkVersion);
final fakeDsn = 'https://[email protected]/1234567';
final envelope = SentryEnvelope.fromEvent(event, sdkVersion, fakeDsn);
await transport.send(envelope);

final envelopeList = arguments as List;
Expand Down