gitcrawl/internal/cli/args_test.go
2026-04-28 21:57:34 +01:00

31 lines
1.1 KiB
Go

package cli
import (
"reflect"
"testing"
)
func TestNormalizeCommandArgsMovesFlagsBeforePositionals(t *testing.T) {
got := normalizeCommandArgs([]string{"openclaw/openclaw", "--query", "download", "--json"}, map[string]bool{"query": true})
want := []string{"--query", "download", "--json", "openclaw/openclaw"}
if !reflect.DeepEqual(got, want) {
t.Fatalf("args: got %#v want %#v", got, want)
}
}
func TestNormalizeCommandArgsKeepsInlineValues(t *testing.T) {
got := normalizeCommandArgs([]string{"openclaw/openclaw", "--limit=5"}, map[string]bool{"limit": true})
want := []string{"--limit=5", "openclaw/openclaw"}
if !reflect.DeepEqual(got, want) {
t.Fatalf("args: got %#v want %#v", got, want)
}
}
func TestNormalizeCommandArgsMovesShortStringFlags(t *testing.T) {
got := normalizeCommandArgs([]string{"hot loop", "-R", "openclaw/openclaw", "--state", "open"}, map[string]bool{"R": true, "state": true})
want := []string{"-R", "openclaw/openclaw", "--state", "open", "hot loop"}
if !reflect.DeepEqual(got, want) {
t.Fatalf("args: got %#v want %#v", got, want)
}
}