| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package admin
- import (
- "net/http"
- "net/http/httptest"
- "testing"
- "github.com/gin-gonic/gin"
- "github.com/stretchr/testify/require"
- )
- func setupRedeemExportRouter() (*gin.Engine, *stubAdminService) {
- gin.SetMode(gin.TestMode)
- router := gin.New()
- adminSvc := newStubAdminService()
- h := NewRedeemHandler(adminSvc, nil)
- router.GET("/api/v1/admin/redeem-codes/export", h.Export)
- return router, adminSvc
- }
- func TestRedeemExportPassesSearchAndSort(t *testing.T) {
- router, adminSvc := setupRedeemExportRouter()
- rec := httptest.NewRecorder()
- req := httptest.NewRequest(http.MethodGet, "/api/v1/admin/redeem-codes/export?type=balance&status=unused&search=ABC&sort_by=value&sort_order=asc", nil)
- router.ServeHTTP(rec, req)
- require.Equal(t, http.StatusOK, rec.Code)
- require.Equal(t, 1, adminSvc.lastListRedeemCodes.calls)
- require.Equal(t, "balance", adminSvc.lastListRedeemCodes.codeType)
- require.Equal(t, "unused", adminSvc.lastListRedeemCodes.status)
- require.Equal(t, "ABC", adminSvc.lastListRedeemCodes.search)
- require.Equal(t, "value", adminSvc.lastListRedeemCodes.sortBy)
- require.Equal(t, "asc", adminSvc.lastListRedeemCodes.sortOrder)
- }
- func TestRedeemExportSortDefaults(t *testing.T) {
- router, adminSvc := setupRedeemExportRouter()
- rec := httptest.NewRecorder()
- req := httptest.NewRequest(http.MethodGet, "/api/v1/admin/redeem-codes/export", nil)
- router.ServeHTTP(rec, req)
- require.Equal(t, http.StatusOK, rec.Code)
- require.Equal(t, 1, adminSvc.lastListRedeemCodes.calls)
- require.Equal(t, "id", adminSvc.lastListRedeemCodes.sortBy)
- require.Equal(t, "desc", adminSvc.lastListRedeemCodes.sortOrder)
- }
|