diff options
| author | Christian Cleberg <[email protected]> | 2026-03-18 20:23:58 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-03-18 20:23:58 -0500 |
| commit | c41cd437acde4e4f4c0781cebd4d5f4bf9517bb9 (patch) | |
| tree | 28bf13b89e36774720d015a26a8979b567ad0be9 /HutchTests/GitObjectTests.swift | |
| parent | 1745311950fd68ad81957b3ba64f8566cd86ce19 (diff) | |
| parent | 4dd920558a1c7174c0e9a5b872325df36e363516 (diff) | |
| download | hutch-c41cd437acde4e4f4c0781cebd4d5f4bf9517bb9.tar.gz hutch-c41cd437acde4e4f4c0781cebd4d5f4bf9517bb9.tar.bz2 hutch-c41cd437acde4e4f4c0781cebd4d5f4bf9517bb9.zip | |
v1.2: Merge branch 'dev'
Diffstat (limited to 'HutchTests/GitObjectTests.swift')
| -rw-r--r-- | HutchTests/GitObjectTests.swift | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/HutchTests/GitObjectTests.swift b/HutchTests/GitObjectTests.swift new file mode 100644 index 0000000..547c6f3 --- /dev/null +++ b/HutchTests/GitObjectTests.swift @@ -0,0 +1,40 @@ +import Foundation +import Testing +@testable import Hutch + +struct GitObjectTests { + + @Test + @MainActor + func decodesMetadataOnlyTextBlobUsingTypename() throws { + let data = Data(#"{"type":"BLOB","__typename":"TextBlob","id":"blob123","shortId":"blob123","size":42}"#.utf8) + + let blob = try JSONDecoder().decode(GitObject.self, from: data) + + guard case .textBlob(let textBlob) = blob else { + Issue.record("Expected metadata-only blob to decode as text blob.") + return + } + + #expect(textBlob.id == "blob123") + #expect(textBlob.size == 42) + #expect(textBlob.text == nil) + } + + @Test + @MainActor + func decodesMetadataOnlyBinaryBlobUsingTypename() throws { + let data = Data(#"{"type":"BLOB","__typename":"BinaryBlob","id":"blob456","shortId":"blob456","size":64}"#.utf8) + + let blob = try JSONDecoder().decode(GitObject.self, from: data) + + guard case .binaryBlob(let binaryBlob) = blob else { + Issue.record("Expected metadata-only blob to decode as binary blob.") + return + } + + #expect(binaryBlob.id == "blob456") + #expect(binaryBlob.size == 64) + #expect(binaryBlob.content == nil) + } +} |
