Files
2026-07-20 04:51:20 +00:00

57 lines
2.1 KiB
Go

//go:build linux && agentcompat
package scenario
import (
"context"
"encoding/json"
"errors"
"strings"
"testing"
"github.com/stretchr/testify/require"
processharness "github.com/nezhahq/nezha/integration/agentcompat/internal/process"
)
func TestHeldRealArtifactKindsIncludeEveryRealSessionKind(t *testing.T) {
require.ElementsMatch(t, []string{"terminal", "file-manager", "nat"}, heldRealArtifactKinds())
}
func TestHeldRealCleanupOKRejectsReceiptErrorAndRunningPID(t *testing.T) {
passedReceipt := processharness.NewCleanupReceipt([]processharness.CleanupRecord{{Name: "process", PID: 1}})
failedReceipt := processharness.NewCleanupReceipt([]processharness.CleanupRecord{{Name: "process", PID: 1, Error: "cleanup failed"}})
complete := heldRealCleanup{Agent: passedReceipt, Dashboard: passedReceipt, SessionClosed: true, ExactStreamGone: true, OwnedResourceGone: true, AgentPIDGone: true, DashboardPIDGone: true}
require.True(t, heldRealCleanupOK(complete))
complete.Agent = failedReceipt
require.False(t, heldRealCleanupOK(complete))
complete.Agent = passedReceipt
complete.AgentPIDGone = false
require.False(t, heldRealCleanupOK(complete))
}
func TestHeldRealNATProfileQueryPropagatesRESTError(t *testing.T) {
wantErr := errors.New("query failed")
present, err := heldRealNATProfilePresentWithQuery(context.Background(), 9, func(context.Context) ([]heldRealNATProfile, error) {
return nil, wantErr
})
require.ErrorIs(t, err, wantErr)
require.False(t, present)
}
func TestHeldRealEvidenceUsesOnlyRedactedSchema(t *testing.T) {
data, err := json.Marshal(heldRealEvidence{Kind: "terminal", SensitiveHeadersPresent: false})
require.NoError(t, err)
var fields map[string]json.RawMessage
require.NoError(t, json.Unmarshal(data, &fields))
for field := range fields {
require.Contains(t, heldRealArtifactKeys(), field)
}
require.NotContains(t, strings.ToLower(string(data)), "stream")
require.NotContains(t, strings.ToLower(string(data)), "token")
require.NotContains(t, strings.ToLower(string(data)), "authorization")
require.Error(t, writeHeldRealEvidence("unknown", heldRealEvidence{Kind: "unknown"}))
}