mirror of
https://github.com/RevenueCat/purchases-ios
synced 2026-11-11 22:55:55 +05:45
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`
42 lines
1.3 KiB
Swift
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
|
|
}
|
|
|
|
}
|