Files
nezha_domains/integration/agentcompat/internal/scenario/held_session_set_test.go
T
2026-07-20 04:51:20 +00:00

46 lines
1.2 KiB
Go

//go:build linux
package scenario
import (
"context"
"testing"
"github.com/stretchr/testify/require"
"github.com/nezhahq/nezha/integration/agentcompat/internal/contract"
)
func TestHeldSessionSetCanonicalPlanHasExactlyFourOfEachKind(t *testing.T) {
// Given
profile, err := contract.ProfileByName(string(contract.ProfilePRFull))
require.NoError(t, err)
plan, err := GenerateStressPlan(profile, contract.DefaultSeed)
require.NoError(t, err)
// When
validated, err := validateHeldSessionSetPlans(plan)
// Then
require.NoError(t, err)
require.Len(t, validated, 12)
require.Equal(t, 4, countHeldSessionKind(validated, StressSessionTerminal))
require.Equal(t, 4, countHeldSessionKind(validated, StressSessionNAT))
require.Equal(t, 4, countHeldSessionKind(validated, StressSessionFM))
}
func TestHeldSessionSetRejectsInvalidTopologyBeforeConstruction(t *testing.T) {
// Given
profile, err := contract.ProfileByName(string(contract.ProfilePRFull))
require.NoError(t, err)
plan, err := GenerateStressPlan(profile, contract.DefaultSeed)
require.NoError(t, err)
// When
_, err = NewHeldSessionSet(context.Background(), HeldSessionSetInput{Plan: plan})
// Then
require.Error(t, err)
require.ErrorIs(t, err, ErrInvalidHeldSessionSetTopology)
}