wordeck-native/Tests/UnitTests/PendingShareStoreTests.swift
Till JS b0745bf18e CHANGELOG + testbarer PendingShareStore-Codec + Tests
- 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>
2026-05-25 14:15:50 +02:00

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)
}
}