Files
InvestmentTrackerApp/PortfolioJournalTests/ViewModels/SettingsViewModelTests.swift
T
2026-02-01 14:40:10 +01:00

43 lines
1.2 KiB
Swift

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"))
}
}