import XCTest
@testable import PhysarumEngine
final class AudioRouteModeTests: XCTestCase {
func testDecodeWithoutModeDefaultsToLevel() throws {
let json = #"{"source":"bass","target":"moveSpeed","depth":1.0}"#.data(using: .utf8)!
let route = try JSONDecoder().decode(AudioRoute.self, from: json)
XCTAssertEqual(route.mode, .level)
}
func testDecodeWithMode() throws {
let json = #"{"source":"bass","target":"bloomIntensity","depth":1.2,"mode":"transient"}"#.data(using: .utf8)!
let route = try JSONDecoder().decode(AudioRoute.self, from: json)
XCTAssertEqual(route.mode, .transient)
}
func testRoundTripEncodesMode() throws {
let r = AudioRoute(source: .high, target: .exposure, depth: 0.6, mode: .transient)
let data = try JSONEncoder().encode(r)
let back = try JSONDecoder().decode(AudioRoute.self, from: data)
XCTAssertEqual(back.mode, .transient)
}
func testMemberwiseInitDefaultsToLevel() {
let r = AudioRoute(source: .bass, target: .moveSpeed, depth: 1)
XCTAssertEqual(r.mode, .level)
}
}