1 contributor
import XCTest
@testable import HealthProbe
final class LocalMetricTimeoutProfileTests: XCTestCase {
override func tearDown() {
LocalMetricTimeoutProfileStore.removeAll()
super.tearDown()
}
func testRecordsSuccessAndPersistsProfile() {
var profile = LocalMetricTimeoutProfile(metricIdentifier: "step_count", displayName: "Step Count")
profile.recordSuccess(elapsed: 12, displayName: "Step Count")
LocalMetricTimeoutProfileStore.save(profile)
let loaded = LocalMetricTimeoutProfileStore.profile(for: MonitoredType(
id: "step_count",
displayName: "Step Count",
category: .activity,
isEnabledByDefault: true,
objectType: nil
))
XCTAssertEqual(loaded.successCount, 1)
XCTAssertEqual(loaded.lastSuccessfulElapsed, 12)
XCTAssertEqual(loaded.timeoutMode, "adaptive")
}
func testManualTimeoutIsClampedAndResettable() {
var profile = LocalMetricTimeoutProfile(metricIdentifier: "heart_rate", displayName: "Heart Rate")
profile.setManualTimeout(1_000)
XCTAssertEqual(profile.effectiveTimeout, LocalMetricTimeoutProfile.maximumTimeout)
XCTAssertEqual(profile.timeoutMode, "manual")
profile.resetLearning()
XCTAssertEqual(profile.effectiveTimeout, LocalMetricTimeoutProfile.defaultInitialTimeout)
XCTAssertEqual(profile.timeoutMode, "default")
}
}