1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import config
import test.framework
import core.result_generic as rg
import core.str
proc main()
let runner = new framework.TestRunner()
let llm = config.LlmDefaults {
enabled: true,
hermes_default: false,
ollama_url: "http://192.168.168.42:11434",
hermes_seed: [".env", "config.yaml", "skills/"]
}
let defaults = config.Defaults {
repos_root: "~/repos",
backup_root: "/nfs/repos",
logdir: "~/.local/state/repoman",
incus_project: "repoman",
default_image: "images:ubuntu/26.04/cloud",
profiles: ["default", "claude-share", "llm-share"],
llm: llm
}
let p = config.Project {
name: "isurus",
repo: "isurus",
image: "images:ubuntu/26.04/cloud",
profiles: ["default", "claude-share", "llm-share"],
created: "2026-05-06T00:00:00Z",
last_sync: "",
backup: true
}
let reg = config.Registry {
schema: 2,
output: "quiet",
defaults: defaults,
projects: [p]
}
let s = config.serialize_registry(reg)
runner.assert_contains_string(s, "schema = 2", "writes schema = 2")
runner.assert_contains_string(s, "[defaults.llm]", "writes [defaults.llm] table header")
runner.assert_contains_string(s, "enabled = true", "writes llm.enabled")
runner.assert_contains_string(s, "hermes_default = false", "writes llm.hermes_default")
runner.assert_contains_string(s, "ollama_url = \"http://192.168.168.42:11434\"", "writes llm.ollama_url")
runner.assert_contains_string(s, "hermes_seed = [", "writes llm.hermes_seed array")
runner.assert_contains_string(s, "\".env\"", "hermes_seed contains .env")
// Round-trip check
let r2 = config.parse_registry(s)
runner.assert_eq_bool(rg.is_ok(r2), true, "round-trip parses")
if rg.is_ok(r2)
let reg2 = rg.unwrap_ok(r2)
runner.assert_eq_int(reg2.schema, 2, "round-trip schema")
runner.assert_eq_bool(reg2.defaults.llm.enabled, true, "round-trip llm.enabled")
runner.assert_eq_int(reg2.defaults.llm.hermes_seed.length(), 3, "round-trip hermes_seed length")
end if
runner.report()
end main
|