From 502f509ff00939083feaade69b7ea499200314ef Mon Sep 17 00:00:00 2001 From: Airscript Date: Wed, 11 Jan 2023 23:06:14 +0100 Subject: [PATCH] test(nim): add ping api test --- nim/testament/tests/base/api.nim | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 nim/testament/tests/base/api.nim diff --git a/nim/testament/tests/base/api.nim b/nim/testament/tests/base/api.nim new file mode 100644 index 0000000..7b6dde4 --- /dev/null +++ b/nim/testament/tests/base/api.nim @@ -0,0 +1,43 @@ +import std/unittest +import std/asyncdispatch + +from std/strformat import fmt + +from std/httpclient import + request, + HttpGet, + AsyncResponse, + AsyncHttpClient, + newAsyncHttpClient + +from ../constants as constants import + PORT, + PING_API, + HOSTNAME, + PROTOCOL, + STATUS_OK + +const SERVER_ADDRESS: string = + fmt"{constants.PROTOCOL}://{constants.HOSTNAME}:{constants.PORT}" + +suite "APIs Test Suite": + var client: AsyncHttpClient + var clientPtr: ptr AsyncHttpClient = client.addr + + setup: + client = newAsyncHttpClient() + + teardown: + reset(client) + dealloc clientPtr + + test "Ping API": + proc ping() {.async.} = + let response: AsyncResponse = await client.request( + url=fmt"{SERVER_ADDRESS}{PING_API}", + httpMethod=HttpGet + ) + + check response.status == constants.STATUS_OK + + waitFor(ping()) \ No newline at end of file