an atproto pds written in F# (.NET 9) 馃
pds fsharp giraffe dotnet atproto
at main 1.4 kB view raw
1module Firehose.Tests 2 3open Xunit 4open PDSharp.Core 5open PDSharp.Core.Firehose 6open PDSharp.Core.Crypto 7 8[<Fact>] 9let ``nextSeq monotonically increases`` () = 10 resetSeq () 11 let seq1 = nextSeq () 12 let seq2 = nextSeq () 13 let seq3 = nextSeq () 14 15 Assert.Equal(1L, seq1) 16 Assert.Equal(2L, seq2) 17 Assert.Equal(3L, seq3) 18 19[<Fact>] 20let ``currentSeq returns without incrementing`` () = 21 resetSeq () 22 let _ = nextSeq () // 1 23 let _ = nextSeq () // 2 24 let current = currentSeq () 25 let next = nextSeq () 26 27 Assert.Equal(2L, current) 28 Assert.Equal(3L, next) 29 30[<Fact>] 31let ``createCommitEvent has correct fields`` () = 32 resetSeq () 33 let hash = sha256Str "test" 34 let cid = Cid.FromHash hash 35 let carBytes = [| 0x01uy; 0x02uy |] 36 37 let event = createCommitEvent "did:web:test" "rev123" cid carBytes 38 39 Assert.Equal(1L, event.Seq) 40 Assert.Equal("did:web:test", event.Did) 41 Assert.Equal("rev123", event.Rev) 42 Assert.Equal<byte[]>(cid.Bytes, event.Commit.Bytes) 43 Assert.Equal<byte[]>(carBytes, event.Blocks) 44 45[<Fact>] 46let ``encodeEvent produces valid CBOR`` () = 47 resetSeq () 48 let hash = sha256Str "test" 49 let cid = Cid.FromHash hash 50 let carBytes = [| 0x01uy; 0x02uy |] 51 let event = createCommitEvent "did:web:test" "rev123" cid carBytes 52 let encoded = encodeEvent event 53 54 Assert.True(encoded.Length > 0) 55 Assert.True(encoded.[0] >= 0xa0uy, "Should encode as CBOR map")