import XCTest @testable import CommandNotch import SwiftTerm final class TerminalScrollWheelRouterTests: XCTestCase { func testMouseWheelForwardingRequiresMouseReportingAndActiveMouseMode() { XCTAssertFalse(TerminalScrollWheelRouter.shouldSendMouseWheel( allowMouseReporting: false, mouseMode: .vt200, deltaY: 1 )) XCTAssertFalse(TerminalScrollWheelRouter.shouldSendMouseWheel( allowMouseReporting: true, mouseMode: .off, deltaY: 1 )) XCTAssertFalse(TerminalScrollWheelRouter.shouldSendMouseWheel( allowMouseReporting: true, mouseMode: .vt200, deltaY: 0 )) XCTAssertTrue(TerminalScrollWheelRouter.shouldSendMouseWheel( allowMouseReporting: true, mouseMode: .vt200, deltaY: -1 )) } func testVelocityMatchesExpectedThresholds() { XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 1), 1) XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 2), 3) XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 6), 10) XCTAssertEqual(TerminalScrollWheelRouter.velocity(for: 10), 20) } func testGridPositionClampsToTerminalBounds() { let hit = TerminalScrollWheelRouter.gridPosition( point: CGPoint(x: 210, y: -10), bounds: CGRect(x: 0, y: 0, width: 200, height: 100), cols: 10, rows: 5 ) XCTAssertEqual(hit.x, 9) XCTAssertEqual(hit.y, 4) XCTAssertEqual(hit.pixelX, 200) XCTAssertEqual(hit.pixelY, 100) } }