mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-08-01 14:33:19 +00:00
53 lines
1.4 KiB
Nim
53 lines
1.4 KiB
Nim
import std/json
|
|
import std/monotimes
|
|
import std/os
|
|
import std/strutils
|
|
|
|
import pkg/chronos
|
|
import pkg/results
|
|
|
|
import ../asynctest
|
|
import ../checktest
|
|
import ../../library/storage_thread_requests/requests/node_lifecycle_request
|
|
|
|
from ../../storage/storage import StorageServer
|
|
|
|
asyncchecksuite "Libstorage - config":
|
|
var server: StorageServer
|
|
|
|
test "rejects malformed JSON":
|
|
let request =
|
|
NodeLifecycleRequest.createShared(CREATE_NODE, """{"log-level": "debug"""")
|
|
let res = await request.process(addr server)
|
|
|
|
check res.isErr
|
|
|
|
if res.isErr:
|
|
check "unable to load configuration" in res.error
|
|
|
|
test "rejects an unknown option":
|
|
let request =
|
|
NodeLifecycleRequest.createShared(CREATE_NODE, """{"unknown": "debug"}""")
|
|
let res = await request.process(addr server)
|
|
|
|
check res.isErr
|
|
|
|
if res.isErr:
|
|
check "unable to load configuration" in res.error
|
|
|
|
test "accepts a valid config":
|
|
let dataDir = getTempDir() / "libstorage-config" / $getMonoTime()
|
|
|
|
defer:
|
|
removeDir(dataDir)
|
|
|
|
# %* escapes the path so that it can be used in JSON.
|
|
let config = $ %*{"data-dir": dataDir}
|
|
let request = NodeLifecycleRequest.createShared(CREATE_NODE, config.cstring)
|
|
let res = await request.process(addr server)
|
|
|
|
check res.isOk
|
|
|
|
let closeRequest = NodeLifecycleRequest.createShared(CLOSE_NODE)
|
|
check (await closeRequest.process(addr server)).isOk
|