Ctrl K
ComunidadGuías…

server/internal/handlers/admin_sources_internal_test.go

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

Archivo original ↗Preguntar a KiBot
package handlers

import (
	"fmt"
	"testing"

	"blackbox/server/internal/models"
	"github.com/stretchr/testify/require"
)

func TestKnownSourceTypes_SingletonFlagsMatchModelRegistry(t *testing.T) {
	for _, typeDef := range knownSourceTypes {
		t.Run(fmt.Sprintf("%s/%s", typeDef.Scope, typeDef.Type), func(t *testing.T) {
			require.Equalf(
				t,
				models.IsSingletonSourceType(typeDef.Scope, typeDef.Type),
				typeDef.Singleton,
				"singleton mismatch for %s/%s",
				typeDef.Scope,
				typeDef.Type,
			)
		})
	}
}

func TestKnownSourceTypes_SingletonsExistInModelAllowlists(t *testing.T) {
	agentSingletons := map[string]struct{}{}
	for _, sourceType := range models.GetAgentScopedSingletonSourceTypes() {
		agentSingletons[sourceType] = struct{}{}
	}

	serverSingletons := map[string]struct{}{}
	for _, sourceType := range models.GetServerScopedSingletonSourceTypes() {
		serverSingletons[sourceType] = struct{}{}
	}

	for _, typeDef := range knownSourceTypes {
		if !typeDef.Singleton {
			continue
		}

		t.Run(fmt.Sprintf("%s/%s", typeDef.Scope, typeDef.Type), func(t *testing.T) {
			switch typeDef.Scope {
			case models.ScopeAgent:
				_, ok := agentSingletons[typeDef.Type]
				require.Truef(t, ok, "missing agent singleton allowlist entry for %s", typeDef.Type)
			case models.ScopeServer:
				_, ok := serverSingletons[typeDef.Type]
				require.Truef(t, ok, "missing server singleton allowlist entry for %s", typeDef.Type)
			default:
				require.Failf(t, "unexpected source scope", "scope=%q type=%q", typeDef.Scope, typeDef.Type)
			}
		})
	}
}