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("我: 最近三个月"))
    }
}
