Refresh puter UI, power telemetry and demand-aware monitoring
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import XCTest
|
||||
@testable import puter
|
||||
|
||||
final class SamplingDemandTests: XCTestCase {
|
||||
func testNoConsumerMeansNoTimer() {
|
||||
let demand = make(active: false)
|
||||
XCTAssertNil(demand.interval)
|
||||
XCTAssertFalse(demand.processInventory)
|
||||
XCTAssertFalse(demand.hardware)
|
||||
XCTAssertFalse(demand.services)
|
||||
}
|
||||
|
||||
func testBackgroundMenuUsesLightweightCountersOnly() {
|
||||
let demand = make(active: false, menu: true)
|
||||
XCTAssertEqual(demand.interval, .seconds(10))
|
||||
XCTAssertTrue(demand.telemetry)
|
||||
XCTAssertFalse(demand.processInventory)
|
||||
XCTAssertFalse(demand.services)
|
||||
XCTAssertFalse(demand.hardware)
|
||||
}
|
||||
|
||||
func testSettingsWithoutConsumersIsIdle() {
|
||||
XCTAssertNil(make(section: .settings).interval)
|
||||
}
|
||||
|
||||
func testServicesOnlyScansVisibleServices() {
|
||||
let demand = make(section: .services)
|
||||
XCTAssertTrue(demand.services)
|
||||
XCTAssertFalse(demand.telemetry)
|
||||
XCTAssertFalse(demand.processInventory)
|
||||
XCTAssertEqual(demand.interval, .seconds(3))
|
||||
}
|
||||
|
||||
func testRecordingKeepsBackgroundTelemetry() {
|
||||
let demand = make(active: false, recording: true)
|
||||
XCTAssertTrue(demand.processInventory)
|
||||
XCTAssertTrue(demand.telemetry)
|
||||
XCTAssertTrue(demand.hardware)
|
||||
XCTAssertEqual(demand.interval, UpdateSpeed.normal.interval)
|
||||
}
|
||||
|
||||
func testPauseStopsEvenRecordingTimer() {
|
||||
XCTAssertNil(make(speed: .paused, recording: true, menu: true).interval)
|
||||
}
|
||||
|
||||
func testPowerMenuOnlyNeedsHardware() {
|
||||
let demand = make(active: false, menu: true, power: true)
|
||||
XCTAssertTrue(demand.hardware)
|
||||
XCTAssertFalse(demand.telemetry)
|
||||
XCTAssertFalse(demand.processInventory)
|
||||
}
|
||||
|
||||
func testAlertsRetainSystemSamplingWithoutProcessScan() {
|
||||
let demand = make(active: false, alerts: true)
|
||||
XCTAssertTrue(demand.telemetry)
|
||||
XCTAssertFalse(demand.processInventory)
|
||||
XCTAssertNotNil(demand.interval)
|
||||
}
|
||||
|
||||
private func make(active: Bool = true, section: TaskSection = .processes,
|
||||
speed: UpdateSpeed = .normal, recording: Bool = false,
|
||||
alerts: Bool = false, menu: Bool = false, power: Bool = false) -> SamplingDemand {
|
||||
SamplingDemand(active: active, section: section, speed: speed,
|
||||
recording: recording, alerts: alerts, menuBar: menu, powerMenu: power)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user