Files
Prism/internal/proxyio/proxyio_test.go
T
rose_cat707 4200f90159
CI / test (push) Failing after 3m48s
CI / docker (push) Has been skipped
feat: Prism HTTP/SOCKS5 代理网关及管理台
Go 控制面(SQLite + REST API)嵌入 Mihomo 数据面,Vue 3 多语言 Web 管理台。
含订阅/节点/规则/出站/监控/日志、OpenAPI、API Key、Gitea Actions CI(runs-on: docker)
与开源文档;镜像发布至 git.rc707blog.top Container Registry。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 12:50:54 +08:00

41 lines
1.1 KiB
Go

package proxyio
import (
"strings"
"testing"
"github.com/prism/proxy/internal/store"
)
func TestExportLinksSocks5(t *testing.T) {
text := ExportLinks([]store.ProxyNode{{
Name: "HK-1",
Type: "socks5",
RawConfig: `{"type":"socks5","server":"1.2.3.4","port":1080,"username":"u","password":"p"}`,
Enabled: true,
}})
if !strings.Contains(text, "socks5://u:p@1.2.3.4:1080#HK-1") {
t.Fatalf("got %q", text)
}
}
func TestParseJSONDoc(t *testing.T) {
nodes, err := ParseJSON([]byte(`{"version":1,"nodes":[{"name":"n1","type":"socks5","raw_config":{"server":"1.1.1.1","port":1080}}]}`))
if err != nil || len(nodes) != 1 {
t.Fatalf("nodes=%+v err=%v", nodes, err)
}
stored, errs := ToStoreNodes(nodes)
if len(errs) != 0 || len(stored) != 1 || stored[0].Name != "n1" {
t.Fatalf("stored=%+v errs=%v", stored, errs)
}
}
func TestAssignUniqueNames(t *testing.T) {
nodes := []store.ProxyNode{{Name: "a"}, {Name: "a"}}
reserved := map[string]bool{"a": true}
AssignUniqueNames(nodes, reserved)
if nodes[0].Name != "a_2" || nodes[1].Name != "a_3" {
t.Fatalf("names: %s, %s", nodes[0].Name, nodes[1].Name)
}
}