Files
MusicServer/internal/backend/download_test.go
T
2026-05-22 22:49:25 +02:00

62 lines
1.5 KiB
Go

package backend
import (
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
)
func TestCheckLatest(t *testing.T) {
mockResponse := giteaResponse{
Id: 1,
Name: "v1.0.0",
Assets: []assetResponse{
{Id: 1, Name: "app.exe", DownloadUrl: "http://example.com/app.exe"},
},
}
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(mockResponse)
}))
defer server.Close()
originalURL := "https://gitea.sanplex.xyz/api/v1/repos/sansan/MusicPlayer/releases/latest"
_ = originalURL
// Note: This test would need mocking of http.Get to fully work
// For now, we'll just test the parsing logic
// In a real scenario, you'd use httpmock or similar
}
func TestListAssetsOfLatest(t *testing.T) {
mockResponse := giteaResponse{
Id: 1,
Name: "v1.0.0",
Assets: []assetResponse{
{Id: 1, Name: "app.exe", DownloadUrl: "http://example.com/app.exe"},
{Id: 2, Name: "app.x86_64", DownloadUrl: "http://example.com/app.x86_64"},
{Id: 3, Name: "app.dmg", DownloadUrl: "http://example.com/app.dmg"},
},
}
// Test the parsing of the response
var cResp giteaResponse
data, _ := json.Marshal(mockResponse)
json.Unmarshal(data, &cResp)
var assets []string
for _, asset := range cResp.Assets {
assets = append(assets, asset.Name)
}
if len(assets) != 3 {
t.Errorf("Expected 3 assets, got %d", len(assets))
}
if assets[0] != "app.exe" {
t.Errorf("Expected first asset to be app.exe, got %s", assets[0])
}
}