Skip to content

Commit 079bcc8

Browse files
test: Remove dep container usage in HTTPTransport (#5552)
Remove a couple of DependencyContainer usages and use the date provider of the fixture instead, because we want to limit the usage of the DependencyContainer as much as we can during testing cause it it global state.
1 parent 5720178 commit 079bcc8

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

Tests/SentryTests/Networking/SentryHttpTransportTests.swift

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class SentryHttpTransportTests: XCTestCase {
4141
@available(*, deprecated, message: "SentryUserFeedback is deprecated in favor of SentryFeedback. There is currently no envelope initializer accepting a SentryFeedback; the envelope is currently built directly in -[SentryClient captureFeedback:withScope:] and sent to -[SentryTransportAdapter sendEvent:traceContext:attachments:additionalEnvelopeItems:].")
4242
lazy var userFeedbackRequest: URLRequest = {
4343
let userFeedbackEnvelope = SentryEnvelope(userFeedback: userFeedback)
44-
userFeedbackEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
44+
userFeedbackEnvelope.header.sentAt = currentDateProvider.date()
4545
return buildRequest(userFeedbackEnvelope)
4646
}()
4747

@@ -55,6 +55,8 @@ class SentryHttpTransportTests: XCTestCase {
5555
SentryDependencyContainer.sharedInstance().reachability = reachability
5656

5757
currentDateProvider = TestCurrentDateProvider()
58+
59+
// Event uses the current date provider of the dependency container. Therefore, we need to set it here.
5860
SentryDependencyContainer.sharedInstance().dateProvider = currentDateProvider
5961

6062
event = Event()
@@ -64,17 +66,17 @@ class SentryHttpTransportTests: XCTestCase {
6466

6567
eventEnvelope = SentryEnvelope(id: event.eventId, items: [SentryEnvelopeItem(event: event), attachmentEnvelopeItem])
6668
// We are comparing byte data and the `sentAt` header is also set in the transport, so we also need them here in the expected envelope.
67-
eventEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
69+
eventEnvelope.header.sentAt = currentDateProvider.date()
6870
eventWithAttachmentRequest = buildRequest(eventEnvelope)
6971

7072
session = SentrySession(releaseName: "2.0.1", distinctId: "some-id")
7173
sessionEnvelope = SentryEnvelope(id: nil, singleItem: SentryEnvelopeItem(session: session))
72-
sessionEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
74+
sessionEnvelope.header.sentAt = currentDateProvider.date()
7375
sessionRequest = buildRequest(sessionEnvelope)
7476

7577
let items = [SentryEnvelopeItem(event: event), SentryEnvelopeItem(session: session)]
7678
eventWithSessionEnvelope = SentryEnvelope(id: event.eventId, items: items)
77-
eventWithSessionEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
79+
eventWithSessionEnvelope.header.sentAt = currentDateProvider.date()
7880
eventWithSessionRequest = buildRequest(eventWithSessionEnvelope)
7981

8082
options = Options()
@@ -102,7 +104,7 @@ class SentryHttpTransportTests: XCTestCase {
102104
SentryEnvelopeItem(clientReport: clientReport)
103105
]
104106
clientReportEnvelope = SentryEnvelope(id: event.eventId, items: clientReportEnvelopeItems)
105-
clientReportEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
107+
clientReportEnvelope.header.sentAt = currentDateProvider.date()
106108
clientReportRequest = buildRequest(clientReportEnvelope)
107109
}
108110

@@ -261,7 +263,7 @@ class SentryHttpTransportTests: XCTestCase {
261263
SentryEnvelopeItem(clientReport: clientReport)
262264
]
263265
let envelope = SentryEnvelope(id: fixture.event.eventId, items: envelopeItems)
264-
envelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
266+
envelope.header.sentAt = fixture.currentDateProvider.date()
265267
let request = SentryHttpTransportTests.buildRequest(envelope)
266268

267269
let actualData = try XCTUnwrap(request.httpBody)
@@ -478,7 +480,7 @@ class SentryHttpTransportTests: XCTestCase {
478480
assertEnvelopesStored(envelopeCount: 0)
479481

480482
let sessionEnvelope = SentryEnvelope(id: fixture.event.eventId, singleItem: SentryEnvelopeItem(session: fixture.session))
481-
sessionEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
483+
sessionEnvelope.header.sentAt = fixture.currentDateProvider.date()
482484
let sessionData = try XCTUnwrap(SentrySerialization.data(with: sessionEnvelope))
483485
let sessionRequest = try! SentryURLRequestFactory.envelopeRequest(with: SentryHttpTransportTests.dsn(), data: sessionData)
484486

@@ -569,7 +571,7 @@ class SentryHttpTransportTests: XCTestCase {
569571
SentryEnvelopeItem(clientReport: clientReport)
570572
]
571573
let clientReportEnvelope = SentryEnvelope(id: fixture.event.eventId, items: clientReportEnvelopeItems)
572-
clientReportEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
574+
clientReportEnvelope.header.sentAt = fixture.currentDateProvider.date()
573575
let clientReportRequest = SentryHttpTransportTests.buildRequest(clientReportEnvelope)
574576

575577
givenRateLimitResponse(forCategory: "error")
@@ -596,7 +598,7 @@ class SentryHttpTransportTests: XCTestCase {
596598
let transactionEnvelope = fixture.getTransactionEnvelope()
597599

598600
let clientReportEnvelope = SentryEnvelope(id: transactionEnvelope.header.eventId, items: clientReportEnvelopeItems)
599-
clientReportEnvelope.header.sentAt = SentryDependencyContainer.sharedInstance().dateProvider.date()
601+
clientReportEnvelope.header.sentAt = fixture.currentDateProvider.date()
600602
let clientReportRequest = SentryHttpTransportTests.buildRequest(clientReportEnvelope)
601603

602604
givenRateLimitResponse(forCategory: "transaction")

0 commit comments

Comments
 (0)