protocol_codec_test.gleam
1 import gleeunit/should 2 import lightspeed/protocol 3 4 pub fn encode_decode_round_trip_test() { 5 let frame = 6 protocol.Event( 7 ref: "42", 8 name: "increment", 9 payload: "{\"pipe\":\"a|b\",\"slash\":\"\\\\\"}", 10 ) 11 12 frame 13 |> protocol.encode 14 |> protocol.decode 15 |> should.equal(Ok(frame)) 16 } 17 18 pub fn hello_with_unsupported_version_is_rejected_test() { 19 "hello|lightspeed|2" 20 |> protocol.decode 21 |> should.equal(Error(protocol.UnsupportedVersion(2))) 22 } 23 24 pub fn unknown_frame_tag_is_rejected_test() { 25 "wat|x|y" 26 |> protocol.decode 27 |> should.equal(Error(protocol.UnknownFrameTag("wat"))) 28 } 29 30 pub fn bad_arity_is_rejected_test() { 31 "ack|one|two" 32 |> protocol.decode 33 |> should.equal( 34 Error(protocol.BadFieldCount(tag: "ack", expected: 2, actual: 3)), 35 ) 36 }