package controller import ( "net/http/httptest" "testing" "time" "github.com/QuantumNous/new-api/pkg/ionet" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" ) func TestMapIoNetDeploymentNormalizesStatusAndRemainingTime(t *testing.T) { createdAt := time.Date(2026, 7, 25, 12, 0, 0, 0, time.UTC) mapped := mapIoNetDeployment(ionet.Deployment{ ID: "deployment-1", Name: "Model Host", Status: "RUNNING", CreatedAt: createdAt, BrandName: "NVIDIA", HardwareName: "H100", HardwareQuantity: 2, ComputeMinutesRemaining: 125, }) require.Equal(t, "running", mapped["status"]) require.Equal(t, "2 hour 5 minutes", mapped["time_remaining"]) require.Equal(t, "NVIDIA H100 x2", mapped["hardware_info"]) require.EqualValues(t, createdAt.Unix(), mapped["created_at"]) } func TestComputeStatusCountsIncludesKnownAndUnknownStatuses(t *testing.T) { counts := computeStatusCounts(4, []ionet.Deployment{ {Status: "RUNNING"}, {Status: "running"}, {Status: "custom"}, }) require.EqualValues(t, 4, counts["all"]) require.EqualValues(t, 2, counts["running"]) require.EqualValues(t, 0, counts["failed"]) require.EqualValues(t, 1, counts["custom"]) } func TestRequireDeploymentAndContainerIDsRejectBlankParameters(t *testing.T) { context, _ := gin.CreateTestContext(httptest.NewRecorder()) context.Params = gin.Params{{Key: "id", Value: " "}, {Key: "container_id", Value: ""}} _, ok := requireDeploymentID(context) require.False(t, ok) _, ok = requireContainerID(context) require.False(t, ok) }