34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
// Copyright 2026 Alibaba Group
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
package builtin_test
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/shortcut/builtin"
|
|
)
|
|
|
|
func TestBaseCommandsExposeSortedDistributionShortcuts(t *testing.T) {
|
|
commands := builtin.BaseCommands()
|
|
if len(commands) == 0 {
|
|
t.Fatal("BaseCommands returned no distribution shortcuts")
|
|
}
|
|
for index, command := range commands {
|
|
if index > 0 && commands[index-1].Name() > command.Name() {
|
|
t.Fatalf("BaseCommands are not sorted: %q before %q", commands[index-1].Name(), command.Name())
|
|
}
|
|
children := command.Commands()
|
|
if len(children) == 0 {
|
|
t.Fatalf("base shortcut service %q has no commands", command.Name())
|
|
}
|
|
for _, child := range children {
|
|
if !strings.HasPrefix(child.Name(), "+") {
|
|
t.Fatalf("base shortcut %q under %q is not mounted as a +command", child.Name(), command.Name())
|
|
}
|
|
}
|
|
}
|
|
}
|