Auto-indexing service and GraphQL API for AT Protocol Records
quickslice.slices.network/
atproto
gleam
graphql
1import gleeunit/should
2import graphql/admin/cursor
3
4pub fn encode_cursor_test() {
5 cursor.encode("Label", 42)
6 |> should.equal("TGFiZWw6NDI=")
7}
8
9pub fn encode_cursor_with_large_id_test() {
10 cursor.encode("Report", 12_345)
11 |> should.equal("UmVwb3J0OjEyMzQ1")
12}
13
14pub fn decode_cursor_test() {
15 cursor.decode("TGFiZWw6NDI=")
16 |> should.equal(Ok(#("Label", 42)))
17}
18
19pub fn decode_cursor_with_large_id_test() {
20 cursor.decode("UmVwb3J0OjEyMzQ1")
21 |> should.equal(Ok(#("Report", 12_345)))
22}
23
24pub fn decode_invalid_cursor_test() {
25 cursor.decode("not-valid-base64!!!")
26 |> should.be_error()
27}
28
29pub fn decode_malformed_cursor_test() {
30 // Valid base64 but wrong format (no colon)
31 cursor.decode("bm9jb2xvbg==")
32 |> should.be_error()
33}