Issue 1585, S18 (ADR 0578 §3, §6): a done key's manifest is decoded leniently and the verdict read from the indexer's state; a refused one is held and named, an unread word set aside and named, never a wait. The module check command, which judged files with no mesh and which nothing calls any more, goes with its tests. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
|
|
"git.novox.be/novox/mesh-sdk/go/catalogue"
|
|
)
|
|
|
|
// ADR 0326 §3 is judged where a definition is written (novox/hq issue 574): namesNoInstallation, which `module add`, a build taken in and the merge gate's registration run.
|
|
func TestWhereADefinitionIsWrittenADeclaringModuleNamesItsFilesKeys(t *testing.T) {
|
|
const silent = `{"module":"mail-client","version":"1",
|
|
"settings":{"prefs":{"kind":"preference","default":"// none","why":"its own defaults until a machine names one"}},
|
|
"resources":[
|
|
{"id":"user-js","type":"file","path":"/var/lib/mail-client/user.js","mode":"0644","content":"${setting:prefs}\n"},
|
|
{"id":"accounts","type":"file","path":"/var/lib/mail-client/accounts.json","mode":"0600","merge":"json",
|
|
"content":"{}\n"%s}]}`
|
|
dir := t.TempDir()
|
|
bad := filepath.Join(dir, "bad.json")
|
|
os.WriteFile(bad, []byte(strings.Replace(silent, "%s", "", 1)), 0o600)
|
|
|
|
raw, _ := os.ReadFile(bad)
|
|
m, err := catalogue.ParseManifest(raw)
|
|
if err != nil {
|
|
t.Fatalf("reading it is not where it is judged: %v", err)
|
|
}
|
|
if err := namesNoInstallation(m); err == nil || !strings.Contains(err.Error(), "names no takes-settings") {
|
|
t.Fatalf("registration passed it: %v", err)
|
|
}
|
|
}
|