Files
DoGaMa-serv/internal/agent/agent_plan_test.go
T
codex b575b5260d
CI / validate (pull_request) Failing after 8m3s
fix(deploy): start current Palworld template
2026-08-15 21:43:48 +02:00

46 lines
1.6 KiB
Go

package agent
import (
"path/filepath"
"testing"
catalogdata "git.zaynet.fr/DoGaMa/DoGaMa-serv/catalog"
"git.zaynet.fr/DoGaMa/DoGaMa-serv/internal/catalog"
"git.zaynet.fr/DoGaMa/DoGaMa-serv/internal/instance"
)
func TestEmbeddedPalworldSnapshotMatchesApplicationDeploymentPlan(t *testing.T) {
snapshots, err := catalog.LoadFS(catalogdata.Files, ".")
if err != nil || len(snapshots) != 1 {
t.Fatalf("embedded snapshots = %#v, error = %v", snapshots, err)
}
snapshot := snapshots[0]
if snapshot.Template.ID != "palworld-official" || snapshot.Template.Version != "1.1.1" {
t.Fatalf("embedded Palworld snapshot = %s@%s", snapshot.Template.ID, snapshot.Template.Version)
}
preview, err := instance.BuildPreview(snapshot, instance.PreviewRequest{
DisplayName: "Snapshot consistency", Slug: "snapshot-consistency",
HostPorts: map[string]int{"game": 38211},
MountPaths: map[string]string{"saved": filepath.Join(t.TempDir(), "saved")},
DataOrigin: "new", BackupRetention: 7,
})
if err != nil {
t.Fatal(err)
}
plan, err := preview.DeploymentPlan("abcdefghijklmnopqrstuvwx")
if err != nil {
t.Fatal(err)
}
policy, err := NewPlanPolicy(snapshots, catalogdata.Files)
if err != nil {
t.Fatal(err)
}
known, ok := policy.snapshots[plan.TemplateID+"@"+plan.TemplateVersion]
if !ok || known.Digest != plan.TemplateDigest {
t.Fatalf("agent snapshot=%#v plan=%s@%s digest=%s", known, plan.TemplateID, plan.TemplateVersion, plan.TemplateDigest)
}
if err := policy.Validate(plan); err != nil {
t.Fatalf("application plan rejected by matching embedded snapshot: %v", err)
}
}