package nextgenglobal

import (
	"testing"

	"github.com/stretchr/testify/require"
	"google.golang.org/grpc/codes"
	"google.golang.org/grpc/status"

	globalngv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/nextgen/v1"
)

func TestNewCIDRValidationStatusErrorPreservesOnlyKnownInvalidArgumentDetail(t *testing.T) {
	t.Parallel()

	detail := &globalngv1.ResourcePoolCidrValidationError{BlockingFindings: []*globalngv1.ResourcePoolCidrValidationFinding{{
		Code: globalngv1.ResourcePoolCidrValidationFinding_INVALID_CIDR,
	}}}
	invalidArgument, err := status.New(codes.InvalidArgument, "invalid CIDR").WithDetails(detail)
	require.NoError(t, err)
	require.NotNil(t, NewCIDRValidationStatusError(invalidArgument.Err()))

	internal, err := status.New(codes.Internal, "internal").WithDetails(detail)
	require.NoError(t, err)
	require.Nil(t, NewCIDRValidationStatusError(internal.Err()))
	require.Nil(t, NewCIDRValidationStatusError(status.Error(codes.InvalidArgument, "no detail")))
}
