Files
spinifex/tests/integration/serial_console_test.go
T
joshsiv-mulga dd764b3970 test(integration): migrate serial-console access checks off live guests
Enable/Disable/GetSerialConsoleAccessEnabled is pure gateway+account-settings
logic with no guest involved, so it moves to the in-process integration tier
against the real AccountSettingsServiceImpl wired into DaemonLite.
2026-07-20 23:46:44 +10:00

46 lines
2.1 KiB
Go

//go:build integration
package integration
import (
"testing"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/stretchr/testify/require"
)
// TestSerialConsoleAccess ports tests/e2e/single/discovery_test.go's
// runSerialConsoleAccess: it flips the account-wide serial-console-access
// setting on then off, checking every transition with both the
// action-returned bool and a follow-up get-status round-trip, against the
// real AccountSettingsServiceImpl DaemonLite wires up (the same production
// code and NATS JetStream KV persistence a live daemon uses).
func TestSerialConsoleAccess(t *testing.T) {
t.Parallel()
gw := StartGateway(t)
StartDaemonLite(t, gw)
ec2Cli := gw.EC2Client(t)
statusOut, err := ec2Cli.GetSerialConsoleAccessStatus(&ec2.GetSerialConsoleAccessStatusInput{})
require.NoError(t, err, "get-serial-console-access-status (default)")
require.False(t, aws.BoolValue(statusOut.SerialConsoleAccessEnabled), "expected serial console default disabled")
enableOut, err := ec2Cli.EnableSerialConsoleAccess(&ec2.EnableSerialConsoleAccessInput{})
require.NoError(t, err, "enable-serial-console-access")
require.True(t, aws.BoolValue(enableOut.SerialConsoleAccessEnabled), "enable: action returned enabled=false")
statusOut, err = ec2Cli.GetSerialConsoleAccessStatus(&ec2.GetSerialConsoleAccessStatusInput{})
require.NoError(t, err, "get-serial-console-access-status (after enable)")
require.True(t, aws.BoolValue(statusOut.SerialConsoleAccessEnabled), "enable: subsequent get-status returned disabled")
disableOut, err := ec2Cli.DisableSerialConsoleAccess(&ec2.DisableSerialConsoleAccessInput{})
require.NoError(t, err, "disable-serial-console-access")
require.False(t, aws.BoolValue(disableOut.SerialConsoleAccessEnabled), "disable: action returned enabled=true")
statusOut, err = ec2Cli.GetSerialConsoleAccessStatus(&ec2.GetSerialConsoleAccessStatusInput{})
require.NoError(t, err, "get-serial-console-access-status (after disable)")
require.False(t, aws.BoolValue(statusOut.SerialConsoleAccessEnabled), "disable: subsequent get-status returned enabled")
}