mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-09-19 09:40:12 +00:00
46 lines
1.2 KiB
Go
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)
|
|
}
|