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
62
63
64
65
66
67
68
69
|
import config
import test.framework
import core.result_generic as rg
fn empty_defaults(): config.Defaults
return config.Defaults {
repos_root: "/r", backup_root: "/b", logdir: "/l", incus_project: "p",
default_image: "img", profiles: new [string](0),
llm: config.LlmDefaults {
enabled: false,
hermes_default: false,
ollama_url: "",
hermes_seed: new [string](0)
}
}
end empty_defaults
proc main()
let runner = new framework.TestRunner()
let reg0: config.Registry = config.Registry {
schema: 1, output: "quiet", defaults: empty_defaults(), projects: new [config.Project](0)
}
let p1: config.Project = config.Project {
name: "isurus", repo: "isurus", image: "img",
profiles: new [string](0), created: "t", last_sync: "", backup: true
}
let r1 = config.add_project(reg0, p1)
runner.assert_eq_bool(rg.is_ok(r1), true, "add new project ok")
if rg.is_ok(r1)
let reg1 = rg.unwrap_ok(r1)
runner.assert_eq_int(reg1.projects.length(), 1, "1 project after add")
runner.assert_eq_string(reg1.projects[0].name, "isurus", "project added")
runner.assert_eq_string(reg1.output, "quiet", "output preserved through add_project")
// duplicate add fails
let r2 = config.add_project(reg1, p1)
runner.assert_eq_bool(rg.is_err(r2), true, "duplicate name rejected")
// update_last_sync
let r3 = config.update_last_sync(reg1, "isurus", "2026-04-29T12:00:00Z")
runner.assert_eq_bool(rg.is_ok(r3), true, "update existing ok")
if rg.is_ok(r3)
let reg3 = rg.unwrap_ok(r3)
runner.assert_eq_string(reg3.projects[0].last_sync, "2026-04-29T12:00:00Z", "last_sync updated")
runner.assert_eq_string(reg3.output, "quiet", "output preserved through update_last_sync")
end if
// update unknown name fails
let r4 = config.update_last_sync(reg1, "nope", "t")
runner.assert_eq_bool(rg.is_err(r4), true, "unknown name rejected")
// remove_project
let r5 = config.remove_project(rg.unwrap_ok(r1), "isurus")
runner.assert_eq_bool(rg.is_ok(r5), true, "remove existing ok")
if rg.is_ok(r5)
let reg5 = rg.unwrap_ok(r5)
runner.assert_eq_int(reg5.projects.length(), 0, "0 projects after remove")
runner.assert_eq_string(reg5.output, "quiet", "output preserved through remove_project")
end if
// remove unknown name fails
let r6 = config.remove_project(rg.unwrap_ok(r1), "ghost")
runner.assert_eq_bool(rg.is_err(r6), true, "remove unknown rejected")
end if
runner.report()
end main
|