diff --git a/Package.swift b/Package.swift index a046d31..5012d03 100644 --- a/Package.swift +++ b/Package.swift @@ -14,6 +14,11 @@ let package = Package( swiftSettings: [ .unsafeFlags(["-parse-as-library"]) ] + ), + .testTarget( + name: "PestyTests", + dependencies: ["Pesty"], + path: "Tests/PestyTests" ) ], swiftLanguageModes: [.v5] diff --git a/Tests/PestyTests/ClipItemTests.swift b/Tests/PestyTests/ClipItemTests.swift new file mode 100644 index 0000000..ee6cec5 --- /dev/null +++ b/Tests/PestyTests/ClipItemTests.swift @@ -0,0 +1,22 @@ +import XCTest +@testable import Pesty + +final class ClipItemTests: XCTestCase { + func testCodableRoundTripPreservesClipMetadata() throws { + let original = ClipItem( + id: UUID(uuidString: "61F39299-3C8E-45AE-90BA-C53889BF9304")!, + type: .link, + text: "https://example.com/path", + sourceBundleID: "com.apple.Safari", + sourceAppName: "Safari", + customTitle: "Example", + createdAt: Date(timeIntervalSince1970: 1_700_000_000) + ) + + let encoded = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(ClipItem.self, from: encoded) + + XCTAssertEqual(decoded, original) + XCTAssertEqual(decoded.displayTitle, "Example") + } +}