84 lines
2.2 KiB
Go
84 lines
2.2 KiB
Go
package server
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
// TestCheckLatest verifies the /download endpoint
|
|
func TestCheckLatest(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("Skipping external API test in short mode")
|
|
}
|
|
|
|
e := StartTestServer(t)
|
|
|
|
resp := MakeTestRequest(t, e, "GET", "/download")
|
|
assert.Equal(t, http.StatusOK, resp.Code)
|
|
|
|
var version string
|
|
err := json.Unmarshal(resp.Body.Bytes(), &version)
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, version, "Should return version string")
|
|
t.Logf("Latest version: %s", version)
|
|
}
|
|
|
|
// TestListAssetsOfLatest verifies the /download/list endpoint
|
|
func TestListAssetsOfLatest(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("Skipping external API test in short mode")
|
|
}
|
|
|
|
e := StartTestServer(t)
|
|
|
|
resp := MakeTestRequest(t, e, "GET", "/download/list")
|
|
assert.Equal(t, http.StatusOK, resp.Code)
|
|
|
|
var assets []string
|
|
err := json.Unmarshal(resp.Body.Bytes(), &assets)
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, assets, "Should return list of assets")
|
|
t.Logf("Found %d assets", len(assets))
|
|
}
|
|
|
|
// TestDownloadLatestWindows verifies the /download/windows endpoint
|
|
func TestDownloadLatestWindows(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("Skipping external API test in short mode")
|
|
}
|
|
|
|
e := StartTestServer(t)
|
|
|
|
resp := MakeTestRequest(t, e, "GET", "/download/windows")
|
|
assert.Equal(t, http.StatusOK, resp.Code)
|
|
|
|
var url string
|
|
err := json.Unmarshal(resp.Body.Bytes(), &url)
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, url, "Should return download URL")
|
|
assert.Contains(t, url, "http", "URL should be valid")
|
|
t.Logf("Windows download URL: %s", url)
|
|
}
|
|
|
|
// TestDownloadLatestLinux verifies the /download/linux endpoint
|
|
func TestDownloadLatestLinux(t *testing.T) {
|
|
if testing.Short() {
|
|
t.Skip("Skipping external API test in short mode")
|
|
}
|
|
|
|
e := StartTestServer(t)
|
|
|
|
resp := MakeTestRequest(t, e, "GET", "/download/linux")
|
|
assert.Equal(t, http.StatusOK, resp.Code)
|
|
|
|
var url string
|
|
err := json.Unmarshal(resp.Body.Bytes(), &url)
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, url, "Should return download URL")
|
|
assert.Contains(t, url, "http", "URL should be valid")
|
|
t.Logf("Linux download URL: %s", url)
|
|
}
|