ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
detections / detections (push) Waiting to run
web / web (push) Waiting to run
docs / links (push) Canceled after 0s
59 lines
1.8 KiB
Go
59 lines
1.8 KiB
Go
package server
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/Autumn-27/artex/db"
|
|
)
|
|
|
|
// A stored catalog entry that collides with a global runtime var (e.g. a legacy
|
|
// seeded goals."Now") must not produce a duplicate: the global wins and the name
|
|
// appears exactly once, so the UI never sees duplicate React keys.
|
|
func TestWithGlobalVarsDedupesCollidingNames(t *testing.T) {
|
|
t.Parallel()
|
|
stored := []db.PromptVar{
|
|
{Name: "EngagementDescription", Description: "task", Source: "exploration"},
|
|
{Name: "Now", Description: "stale per-agent copy", Source: "runtime"},
|
|
}
|
|
out := withGlobalVars(stored)
|
|
|
|
counts := map[string]int{}
|
|
var now db.PromptVar
|
|
for _, v := range out {
|
|
counts[v.Name]++
|
|
if v.Name == "Now" {
|
|
now = v
|
|
}
|
|
}
|
|
if counts["Now"] != 1 {
|
|
t.Fatalf("Now appeared %d times, want 1: %+v", counts["Now"], out)
|
|
}
|
|
if counts["EngagementDescription"] != 1 {
|
|
t.Fatalf("non-colliding stored var was dropped or duplicated: %+v", out)
|
|
}
|
|
// The surviving Now must be the authoritative global definition, not the stale
|
|
// stored one.
|
|
if now.Description == "stale per-agent copy" {
|
|
t.Fatalf("stored var shadowed the global instead of the other way around: %+v", now)
|
|
}
|
|
// Every global is present exactly once.
|
|
for _, g := range globalPromptVars {
|
|
if counts[g.Name] != 1 {
|
|
t.Fatalf("global %q present %d times, want 1", g.Name, counts[g.Name])
|
|
}
|
|
}
|
|
}
|
|
|
|
// The common case (no collisions) keeps every stored var and appends all globals.
|
|
func TestWithGlobalVarsKeepsDistinctVars(t *testing.T) {
|
|
t.Parallel()
|
|
stored := []db.PromptVar{{Name: "Goal", Source: "exploration"}}
|
|
out := withGlobalVars(stored)
|
|
if len(out) != len(stored)+len(globalPromptVars) {
|
|
t.Fatalf("len=%d, want %d: %+v", len(out), len(stored)+len(globalPromptVars), out)
|
|
}
|
|
if out[0].Name != "Goal" {
|
|
t.Fatalf("stored var order not preserved: %+v", out)
|
|
}
|
|
}
|