- decode/encode aus readAll/write extrahiert (rein, ohne App-Group-Container testbar) - PendingShareStoreTests: Round-Trip + kaputtes JSON -> leer + leeres Array (3/3 grün via xcodebuild) - CHANGELOG ergänzt Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
30 lines
1.1 KiB
Swift
30 lines
1.1 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import WordeckNative
|
|
|
|
/// Sichert den Inbox-Codec von ``PendingShareStore`` ab — den Pfad, der
|
|
/// in A3 vom stummen `try?` auf geloggtes do/catch umgestellt wurde.
|
|
@Suite("PendingShareStore — Inbox-Codec")
|
|
struct PendingShareStoreTests {
|
|
@Test("Round-Trip erhält alle Felder")
|
|
func roundTrip() throws {
|
|
let share = PendingShare(text: "Markierter Text", sourceURL: "https://example.test/a")
|
|
let data = try #require(PendingShareStore.encode([share]))
|
|
let back = PendingShareStore.decode(data)
|
|
#expect(back.count == 1)
|
|
#expect(back.first?.id == share.id)
|
|
#expect(back.first?.text == "Markierter Text")
|
|
#expect(back.first?.sourceURL == "https://example.test/a")
|
|
}
|
|
|
|
@Test("Kaputtes JSON → leere Inbox statt Crash")
|
|
func malformedYieldsEmpty() {
|
|
#expect(PendingShareStore.decode(Data("{ kein json".utf8)).isEmpty)
|
|
}
|
|
|
|
@Test("Leeres Array round-trippt zu leerer Inbox")
|
|
func emptyRoundTrip() throws {
|
|
let data = try #require(PendingShareStore.encode([]))
|
|
#expect(PendingShareStore.decode(data).isEmpty)
|
|
}
|
|
}
|