feat: backend service
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package integration_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"galaxy/integration/testenv"
|
||||
)
|
||||
|
||||
// TestAdminEngineVersionsCRUD covers the engine-version registry: a
|
||||
// single admin creates, updates, disables a version. A user attempting
|
||||
// the same endpoint with X-User-ID is rejected (Basic Auth required).
|
||||
func TestAdminEngineVersionsCRUD(t *testing.T) {
|
||||
plat := testenv.Bootstrap(t, testenv.BootstrapOptions{})
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
|
||||
defer cancel()
|
||||
|
||||
admin := testenv.NewBackendAdminClient(plat.Backend.HTTPURL, plat.Backend.AdminUser, plat.Backend.AdminPassword)
|
||||
raw, resp, err := admin.Do(ctx, http.MethodPost, "/api/v1/admin/engine-versions", map[string]any{
|
||||
"version": "v1.0.0",
|
||||
"image_ref": "galaxy/game:integration",
|
||||
"enabled": true,
|
||||
})
|
||||
if err != nil || resp.StatusCode/100 != 2 {
|
||||
t.Fatalf("create version: err=%v status=%d body=%s", err, resp.StatusCode, string(raw))
|
||||
}
|
||||
|
||||
// Update image_ref + enabled flag.
|
||||
raw, resp, err = admin.Do(ctx, http.MethodPatch, "/api/v1/admin/engine-versions/v1.0.0", map[string]any{
|
||||
"image_ref": "galaxy/game:integration",
|
||||
"enabled": false,
|
||||
})
|
||||
if err != nil || resp.StatusCode != http.StatusOK {
|
||||
t.Fatalf("update version: err=%v status=%d body=%s", err, resp.StatusCode, string(raw))
|
||||
}
|
||||
|
||||
// Disable explicitly through the dedicated endpoint.
|
||||
raw, resp, err = admin.Do(ctx, http.MethodPost, "/api/v1/admin/engine-versions/v1.0.0/disable", nil)
|
||||
if err != nil || resp.StatusCode != http.StatusOK {
|
||||
t.Fatalf("disable version: err=%v status=%d body=%s", err, resp.StatusCode, string(raw))
|
||||
}
|
||||
|
||||
// A regular user surface must not have access to this admin endpoint.
|
||||
noAuth := testenv.NewBackendAdminClient(plat.Backend.HTTPURL, "wrong", "wrong")
|
||||
raw, resp, err = noAuth.Do(ctx, http.MethodGet, "/api/v1/admin/engine-versions", nil)
|
||||
if err != nil {
|
||||
t.Fatalf("unauth call: %v", err)
|
||||
}
|
||||
if resp.StatusCode != http.StatusUnauthorized {
|
||||
t.Fatalf("unauth status = %d body=%s, want 401", resp.StatusCode, string(raw))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user