Files
wehub-resource-sync 75f3dd141c
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CI and Release / lint-frontend (push) Has been cancelled
CI and Release / dockerfile-scan (push) Has been cancelled
CI and Release / test-frontend (push) Has been cancelled
CI and Release / lint-verification-agent (push) Has been cancelled
CI and Release / test-verification-agent (push) Has been cancelled
CI and Release / e2e-verification-agent (push) Has been cancelled
CI and Release / test-backend (push) Has been cancelled
CI and Release / build-dev-image (push) Has been cancelled
CI and Release / push-dev-image (push) Has been cancelled
CI and Release / build-image (push) Has been cancelled
CI and Release / build-verification-image (push) Has been cancelled
CI and Release / determine-version (push) Has been cancelled
CI and Release / push-image (push) Has been cancelled
CI and Release / push-verification-image (12) (push) Has been cancelled
CI and Release / lint-backend (push) Has been cancelled
CI and Release / push-verification-image (17) (push) Has been cancelled
CI and Release / push-verification-image (18) (push) Has been cancelled
CI and Release / release (push) Has been cancelled
CI and Release / publish-helm-chart (push) Has been cancelled
CI and Release / push-verification-image (13) (push) Has been cancelled
CI and Release / push-verification-image (14) (push) Has been cancelled
CI and Release / push-verification-image (15) (push) Has been cancelled
CI and Release / push-verification-image (16) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:11:07 +08:00

73 lines
1.9 KiB
Go

package system_agent
import (
"net/http"
"net/http/httptest"
"os"
"path/filepath"
"testing"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func buildAgentDownloadRouter(t *testing.T) *gin.Engine {
t.Helper()
gin.SetMode(gin.TestMode)
t.Chdir(t.TempDir())
require.NoError(t, os.MkdirAll("agent-binaries", 0o755))
require.NoError(t, os.WriteFile(
verificationAgentBinaryPaths["amd64"], []byte("\x7fELF fake agent"), 0o755,
))
router := gin.New()
GetAgentController().RegisterRoutes(router.Group("/api/v1"))
return router
}
func Test_DownloadVerificationAgent_WhenBinaryExists_SendsVersionHeader(t *testing.T) {
t.Setenv("APP_VERSION", "3.45.0")
router := buildAgentDownloadRouter(t)
response := httptest.NewRecorder()
router.ServeHTTP(
response,
httptest.NewRequest(http.MethodGet, "/api/v1/system/verification-agent?arch=amd64", nil),
)
assert.Equal(t, http.StatusOK, response.Code)
assert.Equal(t, "3.45.0", response.Header().Get(AgentVersionHeader))
assert.Equal(t, "application/octet-stream", response.Header().Get("Content-Type"))
}
func Test_DownloadVerificationAgent_WhenArchIsUnknown_ReturnsBadRequest(t *testing.T) {
router := buildAgentDownloadRouter(t)
response := httptest.NewRecorder()
router.ServeHTTP(
response,
httptest.NewRequest(http.MethodGet, "/api/v1/system/verification-agent?arch=riscv64", nil),
)
assert.Equal(t, http.StatusBadRequest, response.Code)
assert.Empty(t, response.Header().Get(AgentVersionHeader))
}
func Test_DownloadVerificationAgent_WhenBinaryIsMissing_ReturnsNotFound(t *testing.T) {
router := buildAgentDownloadRouter(t)
require.NoError(t, os.Remove(filepath.Clean(verificationAgentBinaryPaths["amd64"])))
response := httptest.NewRecorder()
router.ServeHTTP(
response,
httptest.NewRequest(http.MethodGet, "/api/v1/system/verification-agent?arch=amd64", nil),
)
assert.Equal(t, http.StatusNotFound, response.Code)
}