Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Pass DSN within the SentryEnvelopeHeader
  • Loading branch information
vishnukvmd committed May 28, 2022
commit 1ba4085ad44496f37392ae9172393d741fe65b75
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
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