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:
@@ -51,4 +51,40 @@ final class ReviewPromptServiceTests: XCTestCase {
|
||||
|
||||
XCTAssertFalse(didRequest)
|
||||
}
|
||||
|
||||
func testAchievementPromptTriggersForNewUnlockWhenNotReviewed() {
|
||||
let service = ReviewPromptService(
|
||||
userDefaults: defaults,
|
||||
dateProvider: Date.init,
|
||||
reviewRequestHandler: {}
|
||||
)
|
||||
|
||||
let shouldAsk = service.shouldAskForAchievementSatisfaction(newlyUnlockedAchievementKeys: ["streak_3"])
|
||||
|
||||
XCTAssertTrue(shouldAsk)
|
||||
}
|
||||
|
||||
func testAchievementPromptDoesNotTriggerTwiceForSameAchievement() {
|
||||
let service = ReviewPromptService(
|
||||
userDefaults: defaults,
|
||||
dateProvider: Date.init,
|
||||
reviewRequestHandler: {}
|
||||
)
|
||||
|
||||
XCTAssertTrue(service.shouldAskForAchievementSatisfaction(newlyUnlockedAchievementKeys: ["streak_3"]))
|
||||
XCTAssertFalse(service.shouldAskForAchievementSatisfaction(newlyUnlockedAchievementKeys: ["streak_3"]))
|
||||
}
|
||||
|
||||
func testAchievementPromptDoesNotTriggerAfterStoreReviewCompleted() {
|
||||
let service = ReviewPromptService(
|
||||
userDefaults: defaults,
|
||||
dateProvider: Date.init,
|
||||
reviewRequestHandler: {}
|
||||
)
|
||||
service.markStoreReviewCompleted()
|
||||
|
||||
let shouldAsk = service.shouldAskForAchievementSatisfaction(newlyUnlockedAchievementKeys: ["streak_6"])
|
||||
|
||||
XCTAssertFalse(shouldAsk)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,4 +25,22 @@ final class ShareServiceTests: XCTestCase {
|
||||
XCTAssertTrue(text.contains("Net performance:"))
|
||||
XCTAssertTrue(text.contains("Shared from Portfolio Journal"))
|
||||
}
|
||||
|
||||
func testBuildPortfolioValueShareText() {
|
||||
let text = ShareService.buildPortfolioValueShareText(
|
||||
totalValue: "€120,000",
|
||||
changeText: "+€2,500 (+2.1%)",
|
||||
changeLabel: "since last check-in",
|
||||
yearChange: "+€8,000 (+7.1%)",
|
||||
sinceInceptionChange: "+€24,000 (+25.0%)",
|
||||
appName: "Portfolio Journal"
|
||||
)
|
||||
|
||||
XCTAssertTrue(text.contains("Total Portfolio Value"))
|
||||
XCTAssertTrue(text.contains("€120,000"))
|
||||
XCTAssertTrue(text.contains("+€2,500 (+2.1%) since last check-in"))
|
||||
XCTAssertTrue(text.contains("YoY: +€8,000 (+7.1%)"))
|
||||
XCTAssertTrue(text.contains("Since inception: +€24,000 (+25.0%)"))
|
||||
XCTAssertTrue(text.contains("Shared from Portfolio Journal"))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user