mirror of
https://github.com/komodorio/helm-dashboard.git
synced 2026-03-24 11:48:04 +00:00
* fixbug: ChartAndVersion did not handle chart version correct in some case https://github.com/komodorio/helm-dashboard/issues/95 * use regexp to get version * add test case
119 lines
2.9 KiB
Go
119 lines
2.9 KiB
Go
package utils
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func TestGetQueryProps(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
tests := []struct {
|
|
name string
|
|
endpoint string
|
|
revRequired bool
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "Get query props - all set with revRequired true",
|
|
wantErr: false,
|
|
revRequired: true,
|
|
endpoint: "/api/v1/namespaces/komodorio/charts?name=testing&namespace=testing&revision=1",
|
|
},
|
|
{
|
|
name: "Get query props - no revision with revRequired true",
|
|
wantErr: true,
|
|
revRequired: true,
|
|
endpoint: "/api/v1/namespaces/komodorio/charts?name=testing&namespace=testing",
|
|
},
|
|
{
|
|
name: "Get query props - no namespace with revRequired true",
|
|
wantErr: false,
|
|
revRequired: true,
|
|
endpoint: "/api/v1/namespaces/komodorio/charts?name=testing&revision=1",
|
|
},
|
|
{
|
|
name: "Get query props - no name with revRequired true",
|
|
wantErr: true,
|
|
revRequired: true,
|
|
endpoint: "/api/v1/namespaces/komodorio/charts?namespace=testing&revision=1",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", tt.endpoint, nil)
|
|
_, err := GetQueryProps(c, tt.revRequired)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("GetQueryProps() error = %v, wantErr %v", err, tt.wantErr)
|
|
return
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestChartAndVersion(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
params string
|
|
wantChart string
|
|
wantVer string
|
|
wantError bool
|
|
}{
|
|
{
|
|
name: "Chart and version - successfully parsing chart and version",
|
|
params: "chart-1.0.0",
|
|
wantChart: "chart",
|
|
wantVer: "1.0.0",
|
|
wantError: false,
|
|
},
|
|
{
|
|
name: "Chart and version - successfully parsing chart and version",
|
|
params: "chart-v1.0.0",
|
|
wantChart: "chart",
|
|
wantVer: "v1.0.0",
|
|
wantError: false,
|
|
},
|
|
{
|
|
name: "Chart and version - successfully parsing chart and version",
|
|
params: "chart-v1.0.0-alpha",
|
|
wantChart: "chart",
|
|
wantVer: "v1.0.0-alpha",
|
|
wantError: false,
|
|
},
|
|
{
|
|
name: "Chart and version - successfully parsing chart and version",
|
|
params: "chart-1.0.0-alpha",
|
|
wantChart: "chart",
|
|
wantVer: "1.0.0-alpha",
|
|
wantError: false,
|
|
},
|
|
{
|
|
name: "Chart and version - parsing chart without version",
|
|
params: "chart",
|
|
wantError: true,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
a, b, err := ChartAndVersion(tt.params)
|
|
if (err != nil) != tt.wantError {
|
|
t.Errorf("ChartAndVersion() error = %v, wantErr %v", err, tt.wantError)
|
|
return
|
|
}
|
|
|
|
if a != tt.wantChart {
|
|
t.Errorf("ChartAndVersion() got = %v, want %v", a, tt.wantChart)
|
|
}
|
|
|
|
if b != tt.wantVer {
|
|
t.Errorf("ChartAndVersion() got1 = %v, want %v", b, tt.wantVer)
|
|
}
|
|
})
|
|
}
|
|
}
|