Refactor config loading and add config from environment

Issue: #1121
This commit is contained in:
eikek
2021-10-24 23:02:39 +02:00
parent 252741dc64
commit 4e5924d796
11 changed files with 339 additions and 110 deletions

View File

@ -0,0 +1,5 @@
docspell.server {
bind {
port = 7880
}
}

View File

@ -0,0 +1,45 @@
/*
* Copyright 2020 Eike K. & Contributors
*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
package docspell.config
import munit.FunSuite
class EnvConfigTest extends FunSuite {
test("convert underscores") {
assertEquals(EnvConfig.envToProp("A_B_C"), "a.b.c")
assertEquals(EnvConfig.envToProp("A_B__C"), "a.b-c")
assertEquals(EnvConfig.envToProp("AA_BB__CC___D"), "aa.bb-cc_d")
}
test("insert docspell keys") {
val cfg = EnvConfig.loadFrom(
Map(
"DOCSPELL_SERVER_APP__NAME" -> "Hello!",
"DOCSPELL_JOEX_BIND_PORT" -> "1234"
).view
)
assertEquals(cfg.getString("docspell.server.app-name"), "Hello!")
assertEquals(cfg.getInt("docspell.joex.bind.port"), 1234)
}
test("find default values from reference.conf") {
val cfg = EnvConfig.loadFrom(
Map(
"DOCSPELL_SERVER_APP__NAME" -> "Hello!",
"DOCSPELL_JOEX_BIND_PORT" -> "1234"
).view
)
assertEquals(cfg.getInt("docspell.server.bind.port"), 7880)
}
test("discard non docspell keys") {
val cfg = EnvConfig.loadFrom(Map("A_B_C" -> "12").view)
assert(!cfg.hasPath("a.b.c"))
}
}