Ctrl K
ComunidadGuías…

internal/server/caddy_servers_ingest_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// SPDX-License-Identifier: Apache-2.0

package server

import (
	"path/filepath"
	"testing"

	appdb "github.com/X4Applegate/caddyui/internal/db"
	"github.com/X4Applegate/caddyui/internal/models"
)

// v2.37.0: the per-node ingest target must survive create → get → list →
// update, and the migration must add the column to an existing database.
func TestCaddyServerIngestTargetRoundTrips(t *testing.T) {
	conn, err := appdb.Open(filepath.Join(t.TempDir(), "caddyui.db"))
	if err != nil {
		t.Fatal(err)
	}
	t.Cleanup(func() { _ = conn.Close() })

	id, err := models.CreateCaddyServer(conn, &models.CaddyServer{Name: "Richard Prod", AdminURL: "http://10.8.0.3:2019", Type: "managed", IngestTarget: " 10.8.0.1:9019 "})
	if err != nil {
		t.Fatal(err)
	}
	got, err := models.GetCaddyServer(conn, id)
	if err != nil {
		t.Fatal(err)
	}
	if got.IngestTarget != "10.8.0.1:9019" {
		t.Fatalf("GetCaddyServer ingest target = %q, want trimmed 10.8.0.1:9019", got.IngestTarget)
	}
	if got.EffectiveIngestTarget("caddyui:9019") != "10.8.0.1:9019" || got.IngestTargetWarning(got.EffectiveIngestTarget("caddyui:9019")) != "" {
		t.Errorf("configured node should use its own target with no warning: %+v", got)
	}
	list, err := models.ListCaddyServers(conn)
	if err != nil {
		t.Fatal(err)
	}
	var found bool
	for _, sr := range list {
		if sr.ID == id {
			found = sr.IngestTarget == "10.8.0.1:9019"
		}
	}
	if !found {
		t.Fatalf("ListCaddyServers lost the ingest target: %+v", list)
	}
	got.IngestTarget = ""
	if err := models.UpdateCaddyServer(conn, got); err != nil {
		t.Fatal(err)
	}
	again, _ := models.GetCaddyServer(conn, id)
	if again.IngestTarget != "" {
		t.Errorf("after clearing, ingest target = %q", again.IngestTarget)
	}
	if w := again.IngestTargetWarning(again.EffectiveIngestTarget("caddyui:9019")); w == "" {
		t.Error("a remote node back on the Docker-name default must be warned about")
	}
}