import Foundation import Testing @testable import 康康 struct HealthExportDialogueTests { @Test func dialogueTranscriptKeepsTurnOrderAndRoles() throws { let turns: [HealthExportDialogueTurn] = [ .user("我最近头晕,帮我看看"), .assistant("我会结合你的指标和日记整理。"), .user("重点看血压") ] let transcript = HealthExportDialogueTurn.transcript(from: turns) // 用户角色标签是「我」(产品红线:不出现「患者」,见 ca5a3fa)。 #expect(transcript.contains("我: 我最近头晕,帮我看看")) #expect(transcript.contains("康康: 我会结合你的指标和日记整理。")) #expect(transcript.contains("我: 重点看血压")) let first = try #require(transcript.range(of: "我: 我最近头晕")) let second = try #require(transcript.range(of: "我: 重点看血压")) #expect(first.lowerBound < second.lowerBound) } @Test func dialogueTranscriptDropsEmptyTurns() { let turns: [HealthExportDialogueTurn] = [ .user(" "), .assistant("请补充想看的问题"), .user("\n最近三个月\n") ] let transcript = HealthExportDialogueTurn.transcript(from: turns) #expect(!transcript.contains("我: ")) #expect(transcript.contains("康康: 请补充想看的问题")) #expect(transcript.contains("我: 最近三个月")) } }