Files
InvestmentTrackerApp/PortfolioJournalTests/ViewModels/ChartsViewModelDisplayRulesTests.swift
T
2026-02-11 23:37:11 +01:00

27 lines
1.1 KiB
Swift

import XCTest
@testable import PortfolioJournal
@MainActor
final class ChartsViewModelDisplayRulesTests: XCTestCase {
func testAllocationTargetsSupportedOnlyForCategoryBreakdown() {
XCTAssertTrue(ChartsViewModel.supportsAllocationTargets(for: .category))
XCTAssertFalse(ChartsViewModel.supportsAllocationTargets(for: .source))
}
func testEvolutionTimeRangesIncludeRequestedOptions() {
let viewModel = ChartsViewModel(iapService: IAPService())
let ranges = viewModel.availableTimeRanges(for: .evolution)
XCTAssertEqual(ranges, [.all, .yearToDate, .year, .quarter])
}
func testYearToDateRangeStartsAtBeginningOfYear() {
let calendar = Calendar(identifier: .gregorian)
let referenceDate = calendar.date(from: DateComponents(year: 2026, month: 8, day: 15))!
let startDate = ChartsViewModel.TimeRange.yearToDate.startDate(referenceDate: referenceDate)
let expected = calendar.date(from: DateComponents(year: 2026, month: 1, day: 1))!
XCTAssertEqual(startDate, expected)
}
}