๐Ÿ€ ATproto library for gleam
atproto library gleam
34

Configure Feed

Select the types of activity you want to include in your feed.

test: add tests for did parsing

kacaii.dev (Jul 11, 2026, 11:22 AM -0300) b03451de 71f9b194

+58
+58
test/possum_test/did_test.gleam
··· 1 + import gleam/list 2 + import possum/did 3 + 4 + pub fn parse_test() -> Nil { 5 + let assert Ok(_) = 6 + "did:plc:ewvi7nxzyoun6zhxrhs64oiz" 7 + |> did.parse 8 + 9 + let assert Ok(_) = 10 + "did:plc:ewvi7nxzyoun6zhxrhs64oiz" 11 + |> did.parse 12 + 13 + let assert Ok(_) = 14 + "did:web:user.example.com" 15 + |> did.parse 16 + 17 + // valid identifier syntax, invalid method 18 + let assert Error(did.InvalidDidMethod(_)) = 19 + list.try_fold( 20 + [ 21 + "did:method:val:two", 22 + "did:m:v", 23 + "did:method::::val", 24 + "did:method:-:_:.", 25 + "did:key:zQ3shZc2QzApp2oymGvQbzP8eKheVshBHbU4ZYjeXqwSKEn6N", 26 + ], 27 + Nil, 28 + fn(_, item) { 29 + case did.parse(item) { 30 + Ok(_) -> Ok(Nil) 31 + Error(err) -> Error(err) 32 + } 33 + }, 34 + ) 35 + 36 + // invalid identifier syntax 37 + let assert Error(did.InvalidFormat(_)) = 38 + list.try_fold( 39 + [ 40 + "did:METHOD:val", 41 + "did:m123:val", 42 + "DID:method:val", 43 + "did:method:", 44 + "did:method:val/two", 45 + "did:method:val?two", 46 + "did:method:val#two", 47 + ], 48 + Nil, 49 + fn(_, item) { 50 + case did.parse(item) { 51 + Ok(_) -> Ok(Nil) 52 + Error(err) -> Error(err) 53 + } 54 + }, 55 + ) 56 + 57 + Nil 58 + }