mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-11 22:55:55 +05:45
A bunch of tests were failing on Xcode 15 due to [a change in Swift](https://github.com/apple/swift/issues/66466), because we relying on being able to verify that the encoded `Data` saved to caches is consistent. Starting on Swift 5.9 `JSONEncoder` has optimizations that mean we can't rely on it. To fix this, this PR does 2 things: - Changed `JSONEncoder.prettyPrinted` to have `.sortedKeys` - Changed test to verify the decoded response `struct`, not the raw encoded `Data` Note that I didn't make `JSONEncoder.default` use `.sortedKeys` because of the potential performance impact. `Encodable.prettyPrintedData` is used in tests like `ReceiptFetcherTests` (which this PR fixes) and for debug purposes, but `Encodable.encodedJSON` is used everywhere.