Files
Luma/Tests/MessageReplyFallbackTests.swift
2026-07-30 20:07:51 +07:00

46 lines
1.5 KiB
Swift

import XCTest
@testable import Luma
final class MessageReplyFallbackTests: XCTestCase {
func testXEP0428ScalarRangeRemovesUnicodeQuote() {
let fallback = MessageReplyFallback.make(
author: "алиса@example.org",
preview: "Привет 👋\nКак дела?"
)
let body = fallback.prefix + "Отлично!"
let parsed = MessageReplyFallback.parse(
body: body,
fallbackStart: 0,
fallbackEnd: fallback.scalarCount
)
XCTAssertEqual(parsed.body, "Отлично!")
XCTAssertEqual(parsed.preview, "Привет 👋\nКак дела?")
XCTAssertEqual(fallback.scalarCount, fallback.prefix.unicodeScalars.count)
}
func testLegacyConversationsQuoteBecomesReplyPreview() {
let parsed = MessageReplyFallback.parse(
body: "> Старое сообщение\n> в двух строках\n\nНовый ответ",
fallbackStart: nil,
fallbackEnd: nil
)
XCTAssertEqual(parsed.body, "Новый ответ")
XCTAssertEqual(parsed.preview, "Старое сообщение\nв двух строках")
}
func testPlainBodyWithoutQuoteIsUnchanged() {
let body = "Обычное сообщение"
let parsed = MessageReplyFallback.parse(
body: body,
fallbackStart: nil,
fallbackEnd: nil
)
XCTAssertEqual(parsed.body, body)
XCTAssertNil(parsed.preview)
}
}