Files
wehub-resource-sync ead81af521
CI / go (push) Waiting to run
CI / build (darwin, macos-14) (push) Waiting to run
CI / build (windows, windows-2025) (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Failing after 0s
chore: import upstream snapshot with attribution
2026-07-13 12:31:13 +08:00

117 lines
2.8 KiB
Go

package pluginmgr
import (
"testing"
)
func TestResolveSourceGitHub(t *testing.T) {
urls, name, err := resolveSource("user/cliamp-plugin-cool")
if err != nil {
t.Fatal(err)
}
if name != "cool" {
t.Fatalf("name = %q, want %q", name, "cool")
}
want := "https://raw.githubusercontent.com/user/cliamp-plugin-cool/HEAD/cool.lua"
if len(urls) != 1 || urls[0] != want {
t.Fatalf("urls = %v, want [%s]", urls, want)
}
}
func TestResolveSourceGitHubWithTag(t *testing.T) {
urls, name, err := resolveSource("user/cliamp-plugin-cool@v1.0")
if err != nil {
t.Fatal(err)
}
if name != "cool" {
t.Fatalf("name = %q, want %q", name, "cool")
}
want := "https://raw.githubusercontent.com/user/cliamp-plugin-cool/v1.0/cool.lua"
if urls[0] != want {
t.Fatalf("url = %q, want %q", urls[0], want)
}
}
func TestResolveSourceGitLab(t *testing.T) {
urls, name, err := resolveSource("gitlab:user/cliamp-plugin-vis")
if err != nil {
t.Fatal(err)
}
if name != "vis" {
t.Fatalf("name = %q, want %q", name, "vis")
}
want := "https://gitlab.com/user/cliamp-plugin-vis/-/raw/HEAD/vis.lua"
if urls[0] != want {
t.Fatalf("url = %q, want %q", urls[0], want)
}
}
func TestResolveSourceCodeberg(t *testing.T) {
urls, name, err := resolveSource("codeberg:user/cliamp-plugin-eq")
if err != nil {
t.Fatal(err)
}
if name != "eq" {
t.Fatalf("name = %q, want %q", name, "eq")
}
want := "https://codeberg.org/user/cliamp-plugin-eq/raw/branch/main/eq.lua"
if urls[0] != want {
t.Fatalf("url = %q, want %q", urls[0], want)
}
}
func TestResolveSourceCodebergWithTag(t *testing.T) {
urls, _, err := resolveSource("codeberg:user/cliamp-plugin-eq@v2")
if err != nil {
t.Fatal(err)
}
want := "https://codeberg.org/user/cliamp-plugin-eq/raw/tag/v2/eq.lua"
if urls[0] != want {
t.Fatalf("url = %q, want %q", urls[0], want)
}
}
func TestResolveSourceRawURL(t *testing.T) {
urls, name, err := resolveSource("https://example.com/my-plugin.lua")
if err != nil {
t.Fatal(err)
}
if name != "my-plugin" {
t.Fatalf("name = %q, want %q", name, "my-plugin")
}
if urls[0] != "https://example.com/my-plugin.lua" {
t.Fatalf("url = %q", urls[0])
}
}
func TestResolveSourceInvalid(t *testing.T) {
tests := []string{
"",
"justname",
"too/many/parts",
"/nope",
"bitbucket:user/repo",
}
for _, src := range tests {
_, _, err := resolveSource(src)
if err == nil {
t.Errorf("resolveSource(%q) should return error", src)
}
}
}
func TestResolveSourceNonPrefixedRepo(t *testing.T) {
urls, name, err := resolveSource("user/my-equalizer")
if err != nil {
t.Fatal(err)
}
if name != "my-equalizer" {
t.Fatalf("name = %q, want %q", name, "my-equalizer")
}
want := "https://raw.githubusercontent.com/user/my-equalizer/HEAD/my-equalizer.lua"
if urls[0] != want {
t.Fatalf("url = %q, want %q", urls[0], want)
}
}