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
73 lines
1.9 KiB
Go
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)
|
|
}
|