c26b06f1cc
Go 控制面(SQLite + REST API)嵌入 Mihomo 数据面,Vue 3 多语言 Web 管理台。 含订阅/节点/规则/出站/监控/日志、OpenAPI、API Key、Gitea Actions CI 与开源文档; CI 使用 ubuntu-latest runner,Go/Docker 步骤走国内镜像与 shell,避免 GitHub 下载超时。 Co-authored-by: Cursor <cursoragent@cursor.com>
28 lines
683 B
Go
28 lines
683 B
Go
package mihomoapi
|
|
|
|
import "testing"
|
|
|
|
func TestResolveLeafOutbound(t *testing.T) {
|
|
groups := map[string]bool{
|
|
"PROXY": true,
|
|
"country_HK": true,
|
|
"自动选择": true,
|
|
}
|
|
cases := []struct {
|
|
chains []string
|
|
want string
|
|
}{
|
|
{[]string{"PROXY", "sub1_hk_node"}, "sub1_hk_node"},
|
|
{[]string{"country_HK", "sub1_us_node"}, "sub1_us_node"},
|
|
{[]string{"PROXY", "自动选择", "sub1_jp_node"}, "sub1_jp_node"},
|
|
{[]string{"DIRECT"}, "DIRECT"},
|
|
{[]string{"country_HK"}, "country_HK"},
|
|
}
|
|
for _, tc := range cases {
|
|
got := ResolveLeafOutbound(tc.chains, groups)
|
|
if got != tc.want {
|
|
t.Fatalf("chains=%v want %q got %q", tc.chains, tc.want, got)
|
|
}
|
|
}
|
|
}
|