Skip to content

HTTPClientTests: refactored to use waitUntil#2168

Merged
NachoSoto merged 1 commit into
mainfrom
http-client-tests-wait-until
Dec 21, 2022
Merged

HTTPClientTests: refactored to use waitUntil#2168
NachoSoto merged 1 commit into
mainfrom
http-client-tests-wait-until

Conversation

@NachoSoto

@NachoSoto NachoSoto commented Dec 19, 2022

Copy link
Copy Markdown
Contributor

See also #2071 and #2144.

I broke these tests recently, and because we're using toEventually they each take over 1 second to fail, instead of failing immediately after the request finishes.

@NachoSoto NachoSoto requested a review from a team December 19, 2022 18:49
See also #2071 and #2144.

I broke this tests recently, and because we're using `toEventually` they each take 1 second to fail, instead of failing immediately after the request finishes.
@NachoSoto NachoSoto force-pushed the http-client-tests-wait-until branch from 4265071 to 1df9165 Compare December 19, 2022 18:54
NachoSoto added a commit that referenced this pull request Dec 20, 2022
@vegaro vegaro self-assigned this Dec 21, 2022
let obtainedError: Atomic<NetworkError?> = nil
self.client.perform(.init(method: .get, path: path)) { (result: HTTPResponse<Data>.Result) in
obtainedError.value = result.error
let obtainedError: NetworkError? = waitUntilValue { completion in

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this need to be a Atomic?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not with waitUntilValue anymore since it simply returns the value :) it doesn’t múrate anything.

@NachoSoto NachoSoto merged commit 2682e4b into main Dec 21, 2022
@NachoSoto NachoSoto deleted the http-client-tests-wait-until branch December 21, 2022 15:42
NachoSoto pushed a commit that referenced this pull request Dec 21, 2022
**This is an automatic release.**

### Bugfixes
* `ErrorUtils.purchasesError(withUntypedError:)`: handle `PublicError`s
(#2165) via NachoSoto (@NachoSoto)
* Fixed race condition finishing `SK1` transactions (#2148) via
NachoSoto (@NachoSoto)
* `IntroEligibilityStatus`: added `CustomStringConvertible`
implementation (#2182) via NachoSoto (@NachoSoto)
* `BundleSandboxEnvironmentDetector`: fixed logic for `macOS` (#2176)
via NachoSoto (@NachoSoto)
* Fixed `AttributionFetcher.adServicesToken` hanging when called in
simulator (#2157) via NachoSoto (@NachoSoto)
### Other Changes
* `Purchase Tester`: added ability to purchase products directly with
`StoreKit` (#2172) via NachoSoto (@NachoSoto)
* `DNSChecker`: simplified `NetworkError` initialization (#2166) via
NachoSoto (@NachoSoto)
* `Purchases` initialization: refactor to avoid multiple concurrent
instances in memory (#2180) via NachoSoto (@NachoSoto)
* `Purchase Tester`: added button to clear messages on logger view
(#2179) via NachoSoto (@NachoSoto)
* `NetworkOperation`: added assertion to ensure that subclasses call
completion (#2138) via NachoSoto (@NachoSoto)
* `CacheableNetworkOperation`: avoid unnecessarily creating operations
for cache hits (#2135) via NachoSoto (@NachoSoto)
* `PurchaseTester`: fixed `macOS` support (#2175) via NachoSoto
(@NachoSoto)
* `IntroEligibilityCalculator`: added log including `AppleReceipt`
(#2181) via NachoSoto (@NachoSoto)
* `Purchase Tester`: fixed scene manifest (#2170) via NachoSoto
(@NachoSoto)
* `HTTPClientTests`: refactored to use `waitUntil` (#2168) via NachoSoto
(@NachoSoto)
* `Integration Tests`: split up tests in smaller files (#2158) via
NachoSoto (@NachoSoto)
* `StoreKitRequestFetcher`: removed unnecessary dispatch (#2152) via
NachoSoto (@NachoSoto)
* `Purchase Tester`: added companion `watchOS` app (#2140) via NachoSoto
(@NachoSoto)
* `StoreKit1Wrapper`: added warning if receiving too many updated
transactions (#2117) via NachoSoto (@NachoSoto)
* `StoreKitTestHelpers`: cleaned up unnecessary log (#2177) via
NachoSoto (@NachoSoto)
* `TrialOrIntroPriceEligibilityCheckerSK1Tests`: use `waitUntilValue`
(#2173) via NachoSoto (@NachoSoto)
* `DNSChecker`: added log with resolved host (#2167) via NachoSoto
(@NachoSoto)
* `MagicWeatherSwiftUI`: updated `README` to point to workspace (#2142)
via NachoSoto (@NachoSoto)
* `Purchase Tester`: fixed `.storekit` config file reference (#2171) via
NachoSoto (@NachoSoto)
* `Purchase Tester`: fixed error alerts (#2169) via NachoSoto
(@NachoSoto)
* `CI`: don't make releases until `release-checks` pass (#2162) via
NachoSoto (@NachoSoto)
* `Fastfile`: changed `match` to `readonly` (#2161) via NachoSoto
(@NachoSoto)
NachoSoto added a commit that referenced this pull request Feb 2, 2023
See also #2168 and #2071.

I was looking into randomness in tests that might lead to test coverage fluctuations and saw that these tests could be simplified to avoid use of `toEventually`.
NachoSoto added a commit that referenced this pull request Feb 3, 2023
See also #2168 and #2071.

I was looking into randomness in tests that might lead to test coverage
fluctuations and saw that these tests could be simplified to avoid use
of `toEventually`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants