The issue is that GTMStandardUserAgentProvider itself is asynchronous, but only the first time it's ever invoked (after that, it caches its result in a process-wide cache).
The synchronous decorator tests assumed they'd always stay synchronous, but this wasn't the case if they used GTMStandardUserAgentProvider and were the first tests to run in the process.
This fixes the issue by always providing a GTMUserAgentStringProvider for the synchronous decorator tests.
Tested:
swift test passes (except known failure in #368, which is already failing in upstream on macOS 14.2.1).
Also ran test
-[GTMSessionFetcherServiceTest testMultipleDecoratorsSynchronous]
by itself and ensured it failed before this change and passed after
this change.
The decorator tests which used synchronous decorators started failing if they were run alone (before any of the other tests).
This broke in https://github.com/google/gtm-session-fetcher/commit/d469daaafc456f2fc4625918987c0345761a2648 , when I enabled
GTMStandardUserAgentProvider
by default in fetchers which don't otherwise specify a user-agent provider.The issue is that
GTMStandardUserAgentProvider
itself is asynchronous, but only the first time it's ever invoked (after that, it caches its result in a process-wide cache).The synchronous decorator tests assumed they'd always stay synchronous, but this wasn't the case if they used
GTMStandardUserAgentProvider
and were the first tests to run in the process.This fixes the issue by always providing a
GTMUserAgentStringProvider
for the synchronous decorator tests.Tested:
swift test
passes (except known failure in #368, which is already failing in upstream on macOS 14.2.1). Also ran test-[GTMSessionFetcherServiceTest testMultipleDecoratorsSynchronous]
by itself and ensured it failed before this change and passed after this change.Fixes: #367