refactor: simplify auth and subscription links

This commit is contained in:
2026-07-28 10:32:21 +08:00
parent b7a7cd9c71
commit fc8c23beee
41 changed files with 739 additions and 1468 deletions
+35 -50
View File
@@ -79,40 +79,40 @@ func TestNormalizeTarget(t *testing.T) {
func TestNormalizeTargetAlias(t *testing.T) {
// All aliases should map correctly
aliases := map[string]string{
"clash": TargetMihomo,
"clashmeta": TargetMihomo,
"clash-meta": TargetMihomo,
"meta": TargetMihomo,
"mihomo": TargetMihomo,
"stash": TargetStash,
"surge": TargetSurge,
"surgemac": TargetSurgeMac,
"surge-mac": TargetSurgeMac,
"surge_mac": TargetSurgeMac,
"surfboard": TargetSurfboard,
"loon": TargetLoon,
"egern": TargetEgern,
"shadowrocket": TargetShadowrocket,
"sr": TargetShadowrocket,
"qx": TargetQX,
"quanx": TargetQX,
"quantumult": TargetQX,
"quantumultx": TargetQX,
"quantumult-x": TargetQX,
"singbox": TargetSingBox,
"sing-box": TargetSingBox,
"sfa": TargetSingBox,
"karing": TargetSingBox,
"v2ray": TargetV2ray,
"v2rayn": TargetV2ray,
"v2rayng": TargetV2ray,
"base64": TargetV2ray,
"uri": TargetURI,
"uris": TargetURI,
"plain": TargetURI,
"text": TargetURI,
"json": TargetJSON,
"raw": TargetJSON,
"clash": TargetMihomo,
"clashmeta": TargetMihomo,
"clash-meta": TargetMihomo,
"meta": TargetMihomo,
"mihomo": TargetMihomo,
"stash": TargetStash,
"surge": TargetSurge,
"surgemac": TargetSurgeMac,
"surge-mac": TargetSurgeMac,
"surge_mac": TargetSurgeMac,
"surfboard": TargetSurfboard,
"loon": TargetLoon,
"egern": TargetEgern,
"shadowrocket": TargetShadowrocket,
"sr": TargetShadowrocket,
"qx": TargetQX,
"quanx": TargetQX,
"quantumult": TargetQX,
"quantumultx": TargetQX,
"quantumult-x": TargetQX,
"singbox": TargetSingBox,
"sing-box": TargetSingBox,
"sfa": TargetSingBox,
"karing": TargetSingBox,
"v2ray": TargetV2ray,
"v2rayn": TargetV2ray,
"v2rayng": TargetV2ray,
"base64": TargetV2ray,
"uri": TargetURI,
"uris": TargetURI,
"plain": TargetURI,
"text": TargetURI,
"json": TargetJSON,
"raw": TargetJSON,
}
for alias, want := range aliases {
t.Run("alias_"+alias, func(t *testing.T) {
@@ -471,7 +471,7 @@ func TestFilterRuleJSON(t *testing.T) {
}
func TestRecordStructsJSON(t *testing.T) {
// Verify SourceRecord, CollectionRecord, TemplateRecord, DownloadGrantRecord, RecycleBinRecord
// Verify SourceRecord, CollectionRecord, TemplateRecord, RecycleBinRecord
// can marshal/unmarshal without errors.
t.Run("SourceRecord", func(t *testing.T) {
r := SourceRecord{ID: "s1", Name: "test", Type: "remote", URL: "http://example.com"}
@@ -518,21 +518,6 @@ func TestRecordStructsJSON(t *testing.T) {
}
})
t.Run("DownloadGrantRecord", func(t *testing.T) {
r := DownloadGrantRecord{ID: "g1", ResourceType: "source", ResourceId: "s1"}
data, err := json.Marshal(r)
if err != nil {
t.Fatalf("marshal: %v", err)
}
var parsed DownloadGrantRecord
if err := json.Unmarshal(data, &parsed); err != nil {
t.Fatalf("unmarshal: %v", err)
}
if parsed.ResourceType != "source" {
t.Errorf("ResourceType = %q, want source", parsed.ResourceType)
}
})
t.Run("RecycleBinRecord", func(t *testing.T) {
r := RecycleBinRecord{ID: "r1", ResourceType: "source", ResourceId: "s1", Snapshot: map[string]any{"k": "v"}}
data, err := json.Marshal(r)