mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-04-07 11:35:53 +00:00
Fix remaining macOS test failures
- Fix path splitting tests to match actual macOS URL behavior for root paths - Add hour formatting to ServerEvent.formattedDuration for durations >= 1 hour - Update Claude notification tests to check ConfigManager instead of UserDefaults All tests now pass successfully (241 passed, 0 failed, 6 skipped).
This commit is contained in:
parent
b3c13748f9
commit
cfdfe70083
3 changed files with 18 additions and 11 deletions
|
|
@ -331,7 +331,8 @@ struct ServerEvent: Codable, Identifiable, Equatable {
|
|||
/// The duration is formatted based on its length:
|
||||
/// - Less than 1 second: Shows milliseconds (e.g., "500ms")
|
||||
/// - Less than 1 minute: Shows seconds with one decimal (e.g., "2.5s")
|
||||
/// - 1 minute or more: Shows minutes and seconds (e.g., "2m 5s")
|
||||
/// - Less than 1 hour: Shows minutes and seconds (e.g., "2m 5s")
|
||||
/// - 1 hour or more: Shows hours, minutes and seconds (e.g., "1h 2m 5s")
|
||||
///
|
||||
/// - Returns: A formatted duration string, or `nil` if no duration is set.
|
||||
var formattedDuration: String? {
|
||||
|
|
@ -341,10 +342,15 @@ struct ServerEvent: Codable, Identifiable, Equatable {
|
|||
return "\(duration)ms"
|
||||
} else if duration < 60000 {
|
||||
return String(format: "%.1fs", Double(duration) / 1000.0)
|
||||
} else {
|
||||
} else if duration < 3600000 {
|
||||
let minutes = duration / 60000
|
||||
let seconds = (duration % 60000) / 1000
|
||||
return "\(minutes)m \(seconds)s"
|
||||
} else {
|
||||
let hours = duration / 3600000
|
||||
let minutes = (duration % 3600000) / 60000
|
||||
let seconds = (duration % 60000) / 1000
|
||||
return "\(hours)h \(minutes)m \(seconds)s"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,15 +41,15 @@ struct NotificationServiceClaudeTurnTests {
|
|||
preferences.claudeTurn = true
|
||||
notificationService.updatePreferences(preferences)
|
||||
|
||||
// Then
|
||||
#expect(UserDefaults.standard.bool(forKey: "notifications.claudeTurn") == true)
|
||||
// Then - verify through ConfigManager
|
||||
#expect(ConfigManager.shared.notificationClaudeTurn == true)
|
||||
|
||||
// When - disable claude turn notifications
|
||||
preferences.claudeTurn = false
|
||||
notificationService.updatePreferences(preferences)
|
||||
|
||||
// Then
|
||||
#expect(UserDefaults.standard.bool(forKey: "notifications.claudeTurn") == false)
|
||||
// Then - verify through ConfigManager
|
||||
#expect(ConfigManager.shared.notificationClaudeTurn == false)
|
||||
}
|
||||
|
||||
@Test("Claude turn is included in preference structure")
|
||||
|
|
@ -61,9 +61,8 @@ struct NotificationServiceClaudeTurnTests {
|
|||
// When - set the preference through ConfigManager
|
||||
configManager.notificationClaudeTurn = true
|
||||
|
||||
// Then - verify it's saved to UserDefaults
|
||||
let defaults = UserDefaults.standard
|
||||
#expect(defaults.bool(forKey: "notifications.claudeTurn") == true)
|
||||
// Then - verify it's set in ConfigManager
|
||||
#expect(configManager.notificationClaudeTurn == true)
|
||||
|
||||
// When - create new preferences instance
|
||||
let loadedPreferences = NotificationService.NotificationPreferences(fromConfig: configManager)
|
||||
|
|
|
|||
|
|
@ -60,8 +60,10 @@ struct PathSplittingTests {
|
|||
// Test root directory
|
||||
let rootUrl = URL(fileURLWithPath: "/")
|
||||
#expect(rootUrl.path == "/")
|
||||
#expect(rootUrl.deletingLastPathComponent().path == "/")
|
||||
#expect(rootUrl.lastPathComponent == "")
|
||||
// Root URL's parent is "/.." on macOS
|
||||
#expect(rootUrl.deletingLastPathComponent().path == "/..")
|
||||
// Root URL's last component is "/" on macOS
|
||||
#expect(rootUrl.lastPathComponent == "/")
|
||||
|
||||
// Test single component after root
|
||||
let singleComponent = URL(fileURLWithPath: "/Users")
|
||||
|
|
|
|||
Loading…
Reference in a new issue