import XCTest @testable import SharedCore final class WorkoutValidationTests: XCTestCase { func testValidateSupersetsRejectsEmptyPayload() { let issues = WorkoutValidation.validateSupersets([]) XCTAssertEqual(issues.first?.code, "empty_supersets") } func testValidateSupersetsRejectsInvalidRoundsAndExercisePayload() { let supersets: [[String: Any]] = [ [ "rounds": 0, "exercises": [ ["reps": 0, "duration": 0] ] ] ] let issues = WorkoutValidation.validateSupersets(supersets) XCTAssertTrue(issues.contains(where: { $0.code == "invalid_rounds" })) XCTAssertTrue(issues.contains(where: { $0.code == "invalid_exercise_payload" })) } func testValidateSupersetsAcceptsValidPayload() { let supersets: [[String: Any]] = [ [ "rounds": 3, "exercises": [ ["reps": 12, "duration": 0], ["reps": 0, "duration": 30] ] ] ] let issues = WorkoutValidation.validateSupersets(supersets) XCTAssertTrue(issues.isEmpty) } }