1.1.0 feature work: Monthly Check-in, Charts, Goals, Share, Reviews

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
alexandrev-tibco
2026-02-11 23:37:11 +01:00
parent daaca95913
commit 4761e2e5c8
19 changed files with 1118 additions and 90 deletions
@@ -0,0 +1,50 @@
import XCTest
@testable import PortfolioJournal
@MainActor
final class GoalsDisplayRulesTests: XCTestCase {
func testIsAchievedProgressThreshold() {
XCTAssertFalse(GoalsViewModel.isAchieved(progress: 0.998))
XCTAssertTrue(GoalsViewModel.isAchieved(progress: 0.999))
XCTAssertTrue(GoalsViewModel.isAchieved(progress: 1.0))
}
func testUrgencyLevelIsCriticalWhenBehindAndPastTargetDate() {
let targetDate = Date(timeIntervalSince1970: 1_000_000)
let referenceDate = Date(timeIntervalSince1970: 1_100_000)
let level = GoalsViewModel.urgencyLevel(
targetDate: targetDate,
isBehind: true,
isAchieved: false,
referenceDate: referenceDate
)
XCTAssertEqual(level, .critical)
}
func testUrgencyLevelIsWarningWhenBehindBeforeTargetDate() {
let targetDate = Date(timeIntervalSince1970: 1_100_000)
let referenceDate = Date(timeIntervalSince1970: 1_000_000)
let level = GoalsViewModel.urgencyLevel(
targetDate: targetDate,
isBehind: true,
isAchieved: false,
referenceDate: referenceDate
)
XCTAssertEqual(level, .warning)
}
func testUrgencyLevelIsNormalForAchievedGoals() {
let level = GoalsViewModel.urgencyLevel(
targetDate: Date(),
isBehind: true,
isAchieved: true,
referenceDate: Date().addingTimeInterval(86_400)
)
XCTAssertEqual(level, .normal)
}
}