Files
purchases-ios/Tests/StoreKitUnitTests/TransactionsManagerTests.swift
T
NachoSoto 2fff5b0b75 CI: also run tests on watchOS (#2340)
This is a follow up to #717.
In order to be able to reproduce #2338, which seems to be an issue only
on `watchOS`, it's important that we now run tests on `watchOS` as well.
We probably won't be able to fully replicate that issue since we don't
run tests on actual devices, so they'll still run on 64 bits. But this
way we might be able to prevent issues that are only reproducible on
`watchOS` in the future.

## Changes:
- Added CircleCI job
- Added lane
- Simplified `UnitTestsHostApp` definition using `SwiftUI`
- Increased _test only_ `watchOS` deployment target to 7.0 (this was
necessary to be able to have a common `@main` for the host app)
- Increased _test only_ `tvOS` deployment target to `14.0` (same as
above, plus we only run tvOS tests on the latest version anyway. We test
backwards compatibility through iOS already)
- Fixed test compilation on `watchOS`
- Disabled `HTTPClient` tests on `watchOS` (see
https://github.com/AliSoftware/OHHTTPStubs/issues/287)
- `StoreKitConfigTestCase` is only available from `watchOS 7.0` since
that's when `SKTestSession` was introduced
- Added `watchOS` support to `UnitTests` target
- Added `watchOS` support to `ReceiptParserTests` target
- Fixed `isFamilySharable` `watchOS` version checks for version 8.0
- Created new `CI-RevenueCat` Test Plan to only run unit tests and not
StoreKit tests on `watchOS`
2023-03-16 13:11:24 -07:00

42 lines
1.3 KiB
Swift

//
// Copyright RevenueCat Inc. All Rights Reserved.
//
// Licensed under the MIT License (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://opensource.org/licenses/MIT
//
// TransactionsManagerTests.swift
//
// Created by Juanpe Catalán on 10/12/21.
import Nimble
@testable import RevenueCat
import XCTest
@available(iOS 14.0, tvOS 14.0, macOS 11.0, watchOS 7.0, *)
class TransactionsManagerTests: StoreKitConfigTestCase {
private var mockReceiptParser: MockReceiptParser!
private var transactionsManager: TransactionsManager!
override func setUpWithError() throws {
try super.setUpWithError()
self.mockReceiptParser = MockReceiptParser()
self.transactionsManager = TransactionsManager(receiptParser: self.mockReceiptParser)
}
func testCheckCustomerHasTransactionsParserIsCalled() {
_ = transactionsManager.customerHasTransactions(receiptData: .init())
expect(self.mockReceiptParser.invokedReceiptHasTransactions) == true
}
func testCheckCustomerHasTransactionsCalculatedFromReceiptData() {
self.mockReceiptParser.stubbedReceiptHasTransactionsResult = true
expect(self.transactionsManager.customerHasTransactions(receiptData: .init())) == true
}
}