bf9395e022
CI / license-header (push) Has been skipped
CI / e2e-dry-run (push) Has been skipped
CI / fast-gate (push) Failing after 0s
Test PR Label Logic / test-pr-labels (push) Failing after 1s
Skill Format Check / check-format (push) Failing after 2s
CI / security (push) Failing after 5s
CI / unit-test (push) Has been skipped
CI / lint (push) Has been skipped
CI / script-test (push) Has been skipped
CI / deterministic-gate (push) Has been skipped
CI / coverage (push) Has been skipped
CI / results (push) Has been cancelled
CI / deadcode (push) Has been cancelled
CI / e2e-live (push) Has been cancelled
54 lines
1.7 KiB
Go
54 lines
1.7 KiB
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package im
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/larksuite/cli/shortcuts/common"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// newAliasTestRT registers a new flag (with a default) and an old flag, then
|
|
// sets only the flags present in `set` — so Changed() reflects exactly which
|
|
// flags were "passed on the command line".
|
|
func newAliasTestRT(t *testing.T, newName, newDefault, oldName string, set map[string]string) *common.RuntimeContext {
|
|
t.Helper()
|
|
cmd := &cobra.Command{Use: "test"}
|
|
cmd.Flags().String(newName, newDefault, "")
|
|
cmd.Flags().String(oldName, "", "")
|
|
if err := cmd.ParseFlags(nil); err != nil {
|
|
t.Fatalf("ParseFlags() error = %v", err)
|
|
}
|
|
for k, v := range set {
|
|
if err := cmd.Flags().Set(k, v); err != nil {
|
|
t.Fatalf("Set(%q) error = %v", k, err)
|
|
}
|
|
}
|
|
return &common.RuntimeContext{Cmd: cmd}
|
|
}
|
|
|
|
func TestAliasFlagValue(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
set map[string]string
|
|
wantVal string
|
|
wantOK bool
|
|
}{
|
|
{"only old set", map[string]string{"sort-type": "ByActiveTimeDesc"}, "ByActiveTimeDesc", true},
|
|
{"neither set", nil, "", false},
|
|
{"only new set", map[string]string{"sort": "active_time"}, "", false},
|
|
{"both set new wins", map[string]string{"sort": "active_time", "sort-type": "ByCreateTimeAsc"}, "", false},
|
|
}
|
|
for _, c := range cases {
|
|
t.Run(c.name, func(t *testing.T) {
|
|
rt := newAliasTestRT(t, "sort", "create_time", "sort-type", c.set)
|
|
gotVal, gotOK := aliasFlagValue(rt, "sort-type", "sort")
|
|
if gotVal != c.wantVal || gotOK != c.wantOK {
|
|
t.Fatalf("aliasFlagValue() = (%q, %v), want (%q, %v)", gotVal, gotOK, c.wantVal, c.wantOK)
|
|
}
|
|
})
|
|
}
|
|
}
|