Added ReceiptParserTests#2203
Conversation
| @testable import ReceiptParser | ||
| import XCTest | ||
|
|
||
| class ReceiptParserFetchingTests: XCTestCase { |
There was a problem hiding this comment.
Empty placeholder so that swift build works.
Tests added in #2204.
Fixes [CSDK-622]. Depends on #2199, #2200, #2202, #2203. - Extracted `FileReader` to be able to use it in `ReceiptParser` - Extracted `MockBundle` to be able to use it in `ReceiptParser` - Added new `public` `ReceiptParser.fetchAndParseLocalReceipt()`, **only to `ReceiptParser`**. This is not available through `RevenueCat`. - Added tests for the new API - Added new API to `ReceiptParserAPITester` Initially I thought about moving `ReceiptFetcher` to the `Receipt|Parser` target. Unfortunately that would require moving a whole bunch of other dependencies (`OperationDispatcher`, etc, etc). We have no easy way to create a third "Core" framework in which to place these common dependencies, so that wouldn't be trivial. This solution adds a much simpler version of `ReceiptFetcher` that simply reads from `Bundle.appStoreReceiptURL`. As it's documented there, under normal circumstances `SKReceiptRefreshRequest` is not required, so this implementation should work for 99% of use cases, and so this way we avoid increasing the.codebase complexity unnecessarily.
e31d0bb to
79f16d0
Compare
Fixes [CSDK-622]. Depends on #2199, #2200, #2202, #2203. - Extracted `FileReader` to be able to use it in `ReceiptParser` - Extracted `MockBundle` to be able to use it in `ReceiptParser` - Added new `public` `ReceiptParser.fetchAndParseLocalReceipt()`, **only to `ReceiptParser`**. This is not available through `RevenueCat`. - Added tests for the new API - Added new API to `ReceiptParserAPITester` Initially I thought about moving `ReceiptFetcher` to the `Receipt|Parser` target. Unfortunately that would require moving a whole bunch of other dependencies (`OperationDispatcher`, etc, etc). We have no easy way to create a third "Core" framework in which to place these common dependencies, so that wouldn't be trivial. This solution adds a much simpler version of `ReceiptFetcher` that simply reads from `Bundle.appStoreReceiptURL`. As it's documented there, under normal circumstances `SKReceiptRefreshRequest` is not required, so this implementation should work for 99% of use cases, and so this way we avoid increasing the.codebase complexity unnecessarily.
940adfa to
3f9f2e9
Compare
For [CSDK-622], we need to be able to write tests specific to `ReceiptParser` implementations. This sets up that target, and allows running those tests via Xcode or SPM. - Added `ReceiptParserTests` target to Xcode - Added `ReceiptParserTests` target to `Package.swift` - Added `ReceiptParserTests` to "test" phase of `ReceiptParser` scheme - Added `ReceiptParserTests` to All-Tests test plan - Added `ReceiptParserTests` to CI-All-Tests test plan
9686627 to
bc453f0
Compare
| isa = XCRemoteSwiftPackageReference; | ||
| repositoryURL = "https://github.com/quick/nimble"; | ||
| requirement = { | ||
| kind = upToNextMinorVersion; |
There was a problem hiding this comment.
FFTI but I wonder if we could make this go up to the next major version, since it's only for tests and minors "shouldn't" break things. I'm ok leaving as is though.
There was a problem hiding this comment.
The next major doesn't support iOS 11.x unfortunately.
There was a problem hiding this comment.
@NachoSoto
Up to next major doesn't include the next major so it should be safe
There was a problem hiding this comment.
Oh I see what you were saying! Yeah this is wrong thanks.
There was a problem hiding this comment.
Oh damn sorry I forgot to update this.
Either way Nimble 10.x only has a single release: 10.0.0.
**This is an automatic release.** ### New Features * Added new `ReceiptParser.fetchAndParseLocalReceipt` (#2204) via NachoSoto (@NachoSoto) * `PurchasesReceiptParser`: added API to parse receipts from `base64` string (#2200) via NachoSoto (@NachoSoto) ### Bugfixes * `CustomerInfo`: support parsing schema version 2 to restore SDK `v3.x` compatibility (#2213) via NachoSoto (@NachoSoto) ### Other Changes * `JSONDecoder`: added decoding type when logging `DecodingError.keyNotFound` (#2212) via NachoSoto (@NachoSoto) * Added `ReceiptParserTests` (#2203) via NachoSoto (@NachoSoto) * Deploy `PurchaseTester` for `macOS` (#2011) via NachoSoto (@NachoSoto) * `ReceiptFetcher`: refactored implementation to log error when failing to fetch receipt (#2202) via NachoSoto (@NachoSoto) * `PostReceiptDataOperation`: replaced receipt `base64` with `hash` for cache key (#2199) via NachoSoto (@NachoSoto) * `PurchaseTester`: small refactor to simplify `Date` formatting (#2210) via NachoSoto (@NachoSoto) * `PurchasesReceiptParser`: improved documentation to reference `default` (#2197) via NachoSoto (@NachoSoto) * Created `CachingTrialOrIntroPriceEligibilityChecker` (#2007) via NachoSoto (@NachoSoto) * Update Gemfile.lock (#2205) via Cesar de la Vega (@vegaro) * remove stalebot in favor of SLAs in Zendesk (#2196) via Andy Boedo (@aboedo) * Update fastlane-plugin-revenuecat_internal to latest version (#2194) via Cesar de la Vega (@vegaro)
Fixes [CSDK-626]. Depends on #2199, #2200, #2202, #2203, #2204, #2210.  [CSDK-626]: https://revenuecats.atlassian.net/browse/CSDK-626?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
For CSDK-622, we need to be able to write tests specific to
ReceiptParserimplementations.This sets up that target, and allows running those tests via Xcode or SPM.
Changes:
ReceiptParserTeststarget to XcodeReceiptParserTeststarget toPackage.swiftReceiptParserTeststo "test" phase ofReceiptParserschemeReceiptParserTeststo All-Tests test planReceiptParserTeststo CI-All-Tests test plan