58 lines
2.0 KiB
Gleam
58 lines
2.0 KiB
Gleam
import gleam/erlang/process
|
|
import gleeunit
|
|
import gleeunit/should
|
|
import mug
|
|
import treevault
|
|
|
|
pub fn main() {
|
|
gleeunit.main()
|
|
}
|
|
|
|
pub fn server_test() {
|
|
process.start(fn() { treevault.init("non-existent-file.json") }, True)
|
|
process.sleep(2000)
|
|
|
|
let assert Ok(socket) =
|
|
mug.new("localhost", port: 8080)
|
|
|> mug.timeout(milliseconds: 500)
|
|
|> mug.connect()
|
|
|
|
let assert Ok(Nil) = mug.send(socket, <<"set root.a 2":utf8>>)
|
|
let assert Ok(packet) = mug.receive(socket, timeout_milliseconds: 100)
|
|
packet |> should.equal(<<"Ok":utf8>>)
|
|
|
|
let assert Ok(Nil) = mug.send(socket, <<"get root.a":utf8>>)
|
|
let assert Ok(packet) = mug.receive(socket, timeout_milliseconds: 100)
|
|
packet |> should.equal(<<"2":utf8>>)
|
|
|
|
let assert Ok(Nil) = mug.send(socket, <<"foo root.a":utf8>>)
|
|
let assert Ok(packet) = mug.receive(socket, timeout_milliseconds: 100)
|
|
packet |> should.equal(<<"QueryError(\"Wrong query format.\")":utf8>>)
|
|
|
|
let assert Ok(Nil) = mug.send(socket, <<"set root.b \"foo\"":utf8>>)
|
|
let assert Ok(_) = mug.receive(socket, timeout_milliseconds: 100)
|
|
let assert Ok(Nil) = mug.send(socket, <<"get root":utf8>>)
|
|
let assert Ok(packet) = mug.receive(socket, timeout_milliseconds: 100)
|
|
|
|
packet |> should.equal(<<"{\"a\":2,\"b\":\"foo\"}":utf8>>)
|
|
|
|
let assert Ok(Nil) =
|
|
mug.send(socket, <<
|
|
"set root.c {\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":true}}}}}}":utf8,
|
|
>>)
|
|
let assert Ok(_) = mug.receive(socket, timeout_milliseconds: 100)
|
|
let assert Ok(Nil) = mug.send(socket, <<"get root.c":utf8>>)
|
|
let assert Ok(packet) = mug.receive(socket, timeout_milliseconds: 100)
|
|
packet
|
|
|> should.equal(<<
|
|
"{\"a\":{\"b\":{\"c\":{\"d\":{\"e\":{\"f\":true}}}}}}":utf8,
|
|
>>)
|
|
|
|
let assert Ok(Nil) = mug.send(socket, <<"set root.a {\"baz\":\"bar\"}":utf8>>)
|
|
let assert Ok(_) = mug.receive(socket, timeout_milliseconds: 100)
|
|
let assert Ok(Nil) = mug.send(socket, <<"get root.a":utf8>>)
|
|
let assert Ok(packet) = mug.receive(socket, timeout_milliseconds: 100)
|
|
packet
|
|
|> should.equal(<<"{\"baz\":\"bar\"}":utf8>>)
|
|
}
|