From dd466bb6fd3e6b114baecddc74f9ee08880008c2 Mon Sep 17 00:00:00 2001 From: Alvie Stoddard Date: Wed, 12 Aug 2026 21:44:43 -0700 Subject: [PATCH] Add a standalone SwiftPM smoke test --- Package.swift | 5 +++++ Tests/PestyTests/ClipItemTests.swift | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 Tests/PestyTests/ClipItemTests.swift 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") + } +}