You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

46 lines
1.5 KiB

  1. package controller
  2. import (
  3. "net/http/httptest"
  4. "testing"
  5. "time"
  6. "github.com/QuantumNous/new-api/pkg/ionet"
  7. "github.com/gin-gonic/gin"
  8. "github.com/stretchr/testify/require"
  9. )
  10. func TestMapIoNetDeploymentNormalizesStatusAndRemainingTime(t *testing.T) {
  11. createdAt := time.Date(2026, 7, 25, 12, 0, 0, 0, time.UTC)
  12. mapped := mapIoNetDeployment(ionet.Deployment{
  13. ID: "deployment-1", Name: "Model Host", Status: "RUNNING", CreatedAt: createdAt,
  14. BrandName: "NVIDIA", HardwareName: "H100", HardwareQuantity: 2, ComputeMinutesRemaining: 125,
  15. })
  16. require.Equal(t, "running", mapped["status"])
  17. require.Equal(t, "2 hour 5 minutes", mapped["time_remaining"])
  18. require.Equal(t, "NVIDIA H100 x2", mapped["hardware_info"])
  19. require.EqualValues(t, createdAt.Unix(), mapped["created_at"])
  20. }
  21. func TestComputeStatusCountsIncludesKnownAndUnknownStatuses(t *testing.T) {
  22. counts := computeStatusCounts(4, []ionet.Deployment{
  23. {Status: "RUNNING"}, {Status: "running"}, {Status: "custom"},
  24. })
  25. require.EqualValues(t, 4, counts["all"])
  26. require.EqualValues(t, 2, counts["running"])
  27. require.EqualValues(t, 0, counts["failed"])
  28. require.EqualValues(t, 1, counts["custom"])
  29. }
  30. func TestRequireDeploymentAndContainerIDsRejectBlankParameters(t *testing.T) {
  31. context, _ := gin.CreateTestContext(httptest.NewRecorder())
  32. context.Params = gin.Params{{Key: "id", Value: " "}, {Key: "container_id", Value: ""}}
  33. _, ok := requireDeploymentID(context)
  34. require.False(t, ok)
  35. _, ok = requireContainerID(context)
  36. require.False(t, ok)
  37. }