RedFlag/agent/internal/handlers/local_approve_test.go
Source publisher ffdccba10f source: advance the checked projection
Source-Sha: 194a59adfd6c901635da7a9c18253bb2210e2426
Policy-Sha: b9b0be0ee74e55f561a803b8aef6be3c2134f5a83b46816a069a372f2eb04f4d
Tree-Digest: 4697f2e281c1c6ecafff17cf6eeb391a0a1ac0fa6e5fc429f5b473f4579c252c
2026-09-21 14:39:08 +00:00

49 lines
1.4 KiB
Go

package handlers
import (
"context"
"errors"
"testing"
"github.com/Fimeg/RedFlag/agent/internal/config"
"github.com/gofrs/uuid/v5"
)
func TestGatedLocalApprovalEcosystems(t *testing.T) {
for _, packageType := range []string{"apt", "dnf", "pacman"} {
if !gatedLocalApproval(packageType) {
t.Errorf("%s is not routed through local authority", packageType)
}
}
for _, packageType := range []string{"docker", "winget", "windows_update", "cargo"} {
if gatedLocalApproval(packageType) {
t.Errorf("%s entered local authority without a migrated backend", packageType)
}
}
}
func TestLocalApprovalRefusesFleetModeBeforeResolution(t *testing.T) {
id, err := uuid.NewV4()
if err != nil {
t.Fatal(err)
}
_, err = HandleLocalApprove(context.Background(), &config.Config{AgentID: id, Token: "fleet", RefreshToken: "refresh"}, LocalApproveRequest{
PackageType: "pacman", PackageName: "linux", Operator: "operator", OverrideReason: "accepted",
})
if !errors.Is(err, ErrApprovalFleetMode) {
t.Fatalf("fleet approval error = %v", err)
}
}
func TestPacmanUnsupportedOSVRequiresReasonBeforeResolution(t *testing.T) {
id, err := uuid.NewV4()
if err != nil {
t.Fatal(err)
}
_, err = HandleLocalApprove(context.Background(), &config.Config{AgentID: id}, LocalApproveRequest{
PackageType: "pacman", PackageName: "not-a-real-package", Operator: "operator",
})
if !errors.Is(err, ErrApprovalBlocked) {
t.Fatalf("pacman approval error = %v", err)
}
}