Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user