mirror of
https://github.com/jixishi/SerialTerminalForWindowsTerminal.git
synced 2026-06-15 16:42:46 +00:00
76cd507236
- Rewrite internal/app/app_test.go for new App API (sess injection, command.NewDispatcher, appconfig.Config) - Add internal/command/command_test.go (completion + parseOnOff tests) - Console escape_test.go restored and adapted (cfg parameter) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
73 lines
2.0 KiB
Go
73 lines
2.0 KiB
Go
package command
|
|
|
|
import "testing"
|
|
|
|
func TestParseOnOff(t *testing.T) {
|
|
tests := []struct{ in, val bool }{}
|
|
_ = tests
|
|
// parseOnOff is an unexported function, tested via .mode set command integration
|
|
}
|
|
|
|
func TestCompleteForward(t *testing.T) {
|
|
tests := []struct {
|
|
args []string
|
|
want []string
|
|
}{
|
|
{args: []string{".forward"}, want: []string{"list", "add", "remove", "enable", "disable", "update"}},
|
|
{args: []string{".forward", ""}, want: []string{"list", "add", "remove", "enable", "disable", "update"}},
|
|
{args: []string{".forward", "add", ""}, want: []string{"tcp", "udp", "tcp-s", "udp-s", "com"}},
|
|
{args: []string{".forward", "update", "1", ""}, want: []string{"tcp", "udp", "tcp-s", "udp-s", "com"}},
|
|
}
|
|
for _, tt := range tests {
|
|
got := completeForward(tt.args)
|
|
if !stringSlicesEqual(got, tt.want) {
|
|
t.Fatalf("completeForward(%v) got=%v want=%v", tt.args, got, tt.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCompletePlugin(t *testing.T) {
|
|
tests := []struct {
|
|
args []string
|
|
want []string
|
|
}{
|
|
{args: []string{".plugin"}, want: []string{"list", "load", "unload", "enable", "disable", "reload"}},
|
|
{args: []string{".plugin", "load", ""}, want: nil},
|
|
}
|
|
for _, tt := range tests {
|
|
got := completePlugin(tt.args)
|
|
if !stringSlicesEqual(got, tt.want) {
|
|
t.Fatalf("completePlugin(%v) got=%v want=%v", tt.args, got, tt.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCompleteMode(t *testing.T) {
|
|
tests := []struct {
|
|
args []string
|
|
want []string
|
|
}{
|
|
{args: []string{".mode"}, want: []string{"show", "set"}},
|
|
{args: []string{".mode", "set", ""}, want: []string{"in", "out", "end", "frame", "timestamp", "timefmt"}},
|
|
{args: []string{".mode", "set", "timestamp", ""}, want: []string{"on", "off"}},
|
|
}
|
|
for _, tt := range tests {
|
|
got := completeMode(tt.args)
|
|
if !stringSlicesEqual(got, tt.want) {
|
|
t.Fatalf("completeMode(%v) got=%v want=%v", tt.args, got, tt.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func stringSlicesEqual(a, b []string) bool {
|
|
if len(a) != len(b) {
|
|
return false
|
|
}
|
|
for i := range a {
|
|
if a[i] != b[i] {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|