Files
kandev/apps/backend/internal/launcher/options_test.go
T
2026-06-20 19:40:15 +01:00

60 lines
1.5 KiB
Go

package launcher
import "testing"
func TestParseArgsStartPortsAndHeadless(t *testing.T) {
opts, err := parseArgs([]string{"start", "--port", "1234", "--headless"})
if err != nil {
t.Fatal(err)
}
if opts.Command != CommandStart {
t.Fatalf("Command = %q, want %q", opts.Command, CommandStart)
}
if opts.BackendPort != 1234 || !opts.Headless {
t.Fatalf("parsed options = %+v", opts)
}
}
func TestParseArgsRejectsInvalidPort(t *testing.T) {
_, err := parseArgs([]string{"--port", "70000"})
if err == nil {
t.Fatal("expected error")
}
}
func TestParseArgsRejectsRemovedWebPort(t *testing.T) {
_, err := parseArgs([]string{"--web-port", "12345"})
if err == nil {
t.Fatal("expected error")
}
}
func TestParseArgsRejectsUnsupportedDevMode(t *testing.T) {
for _, argv := range [][]string{{"dev"}, {"--dev"}} {
_, err := parseArgs(argv)
if err == nil {
t.Fatalf("parseArgs(%v) returned nil error", argv)
}
if _, ok := err.(ParseError); !ok {
t.Fatalf("parseArgs(%v) error = %T, want ParseError", argv, err)
}
}
}
func TestParseArgsRejectsUnsupportedRuntimeVersion(t *testing.T) {
for _, argv := range [][]string{
{"--runtime-version", "v1.2.3"},
{"--runtime-version=v1.2.3"},
{"--runtime-version"},
{"--runtime-version="},
} {
_, err := parseArgs(argv)
if err == nil {
t.Fatalf("parseArgs(%v) returned nil error", argv)
}
if err.Error() != "--runtime-version is not supported by the native launcher" {
t.Fatalf("parseArgs(%v) error = %q", argv, err)
}
}
}