|
root / tests / test_config_llm_serialize.reef
test_config_llm_serialize.reef Reef 62 lines 2.3 KB
 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