Add tests for 1.1.0 features

This commit is contained in:
alexandrev-tibco
2026-02-01 14:40:10 +01:00
parent d55b999bef
commit 2437dd647f
11 changed files with 297 additions and 29 deletions
@@ -0,0 +1,42 @@
import XCTest
@testable import PortfolioJournal
@MainActor
final class SettingsViewModelTests: XCTestCase {
override func tearDown() {
UserDefaults.standard.removeObject(forKey: "backupsEnabled")
UserDefaults.standard.removeObject(forKey: "backupRetentionCount")
UserDefaults.standard.removeObject(forKey: "debugPremiumOverride")
super.tearDown()
}
func testSetBackupsEnabledNonPremiumShowsPaywall() {
let iap = IAPService()
#if DEBUG
iap.setPremiumForTesting(false)
#endif
let viewModel = SettingsViewModel(iapService: iap)
viewModel.setBackupsEnabled(true)
XCTAssertFalse(viewModel.backupsEnabled)
XCTAssertTrue(viewModel.showingPaywall)
}
func testSetBackupsEnabledPremiumPersistsFlag() {
#if DEBUG
UserDefaults.standard.set(true, forKey: "debugPremiumOverride")
#endif
let iap = IAPService()
#if DEBUG
iap.setDebugPremiumOverride(true)
#endif
let viewModel = SettingsViewModel(iapService: iap)
viewModel.setBackupsEnabled(true)
XCTAssertTrue(viewModel.backupsEnabled)
XCTAssertFalse(viewModel.showingPaywall)
XCTAssertTrue(UserDefaults.standard.bool(forKey: "backupsEnabled"))
}
}