Source-Sha: 194a59adfd6c901635da7a9c18253bb2210e2426 Policy-Sha: b9b0be0ee74e55f561a803b8aef6be3c2134f5a83b46816a069a372f2eb04f4d Tree-Digest: 4697f2e281c1c6ecafff17cf6eeb391a0a1ac0fa6e5fc429f5b473f4579c252c
49 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|