From 6103e3f4e5a959b9e25609edacd2dbf25acaba96 Mon Sep 17 00:00:00 2001 From: Taksh Date: Fri, 31 Jul 2026 11:44:54 +0300 Subject: [PATCH] test: cover message quote formatting and draft append behavior Pinned multiline quotes, system-sender omission, and non-destructive append. --- .../Services/MessageClipboardTests.swift | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 bitchatTests/Services/MessageClipboardTests.swift diff --git a/bitchatTests/Services/MessageClipboardTests.swift b/bitchatTests/Services/MessageClipboardTests.swift new file mode 100644 index 00000000..da589bd9 --- /dev/null +++ b/bitchatTests/Services/MessageClipboardTests.swift @@ -0,0 +1,37 @@ +import Foundation +import Testing +@testable import bitchat + +struct MessageClipboardTests { + @Test func quoteWrapsEachLineAndAddsSender() { + let quoted = MessageClipboard.quoteForComposer("hello\nworld", sender: "alice") + #expect(quoted == "> @alice:\n> hello\n> world\n\n") + } + + @Test func quoteSkipsSystemSenderHeader() { + let quoted = MessageClipboard.quoteForComposer("joined", sender: "system") + #expect(quoted == "> joined\n\n") + } + + @Test func emptyContentYieldsEmptyQuote() { + #expect(MessageClipboard.quoteForComposer(" ", sender: "alice").isEmpty) + } + + @Test func appendQuotePreservesExistingDraft() { + let result = MessageClipboard.appendQuote( + to: "already typing", + content: "prior message", + sender: "bob" + ) + #expect(result == "already typing\n> @bob:\n> prior message\n\n") + } + + @Test func appendQuoteOntoEmptyDraft() { + let result = MessageClipboard.appendQuote( + to: "", + content: "solo", + sender: "carol" + ) + #expect(result == "> @carol:\n> solo\n\n") + } +}