Fix the Pipeline runs paging issues caused by BlueOcean plugin
Signed-off-by: rick <1450685+LinuxSuRen@users.noreply.github.com>
This commit is contained in:
106
pkg/simple/client/devops/jenkins/pipeline_test.go
Normal file
106
pkg/simple/client/devops/jenkins/pipeline_test.go
Normal file
@@ -0,0 +1,106 @@
|
||||
package jenkins
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"kubesphere.io/kubesphere/pkg/simple/client/devops"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestResetPaging(t *testing.T) {
|
||||
table := []struct {
|
||||
path string
|
||||
rawQuery string
|
||||
start int
|
||||
limit int
|
||||
hasErr bool
|
||||
message string
|
||||
}{{
|
||||
start: 0,
|
||||
limit: 10,
|
||||
hasErr: false,
|
||||
message: "without query, should no errors",
|
||||
}, {
|
||||
path: "/fake/path",
|
||||
rawQuery: "?start=1&limit1",
|
||||
start: 0,
|
||||
limit: 10,
|
||||
hasErr: false,
|
||||
message: "without a query",
|
||||
}, {
|
||||
path: "/fake/path",
|
||||
rawQuery: "?start=1&limit1",
|
||||
start: 3,
|
||||
limit: 13,
|
||||
hasErr: false,
|
||||
message: "without a query",
|
||||
}}
|
||||
|
||||
for index, item := range table {
|
||||
pip := &Pipeline{
|
||||
Path: item.path,
|
||||
HttpParameters: &devops.HttpParameters{
|
||||
Url: &url.URL{
|
||||
Path: item.path,
|
||||
RawQuery: item.rawQuery,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
resultPath, err := pip.resetPaging(item.start, item.limit)
|
||||
if item.hasErr {
|
||||
assert.NotNil(t, err, printTestMessage(index, item.message))
|
||||
} else {
|
||||
assert.Nil(t, err, printTestMessage(index, item.message))
|
||||
|
||||
assert.Equal(t, item.path, resultPath.Path, printTestMessage(index, item.message))
|
||||
assert.Equal(t, strconv.Itoa(item.start), pip.HttpParameters.Url.Query().Get("start"),
|
||||
printTestMessage(index, item.message))
|
||||
assert.Equal(t, strconv.Itoa(item.limit), pip.HttpParameters.Url.Query().Get("limit"),
|
||||
printTestMessage(index, item.message))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestParsePaging(t *testing.T) {
|
||||
table := []struct {
|
||||
targetUrl string
|
||||
start int
|
||||
limit int
|
||||
message string
|
||||
}{{
|
||||
targetUrl: "http://localhost?start=0&limit=0",
|
||||
start: 0,
|
||||
limit: 0,
|
||||
message: "should be success",
|
||||
}, {
|
||||
targetUrl: "http://localhost?start=1&limit=10",
|
||||
start: 1,
|
||||
limit: 10,
|
||||
message: "should be success",
|
||||
}, {
|
||||
targetUrl: "http://localhost?start=5&limit=55",
|
||||
start: 5,
|
||||
limit: 55,
|
||||
message: "should be success",
|
||||
}}
|
||||
|
||||
for index, item := range table {
|
||||
pipUrl, _ := url.Parse(item.targetUrl)
|
||||
pip := &Pipeline{
|
||||
HttpParameters: &devops.HttpParameters{
|
||||
Url: pipUrl,
|
||||
},
|
||||
}
|
||||
resultStart, resultLimit := pip.parsePaging()
|
||||
|
||||
assert.Equal(t, item.start, resultStart, printTestMessage(index, item.message))
|
||||
assert.Equal(t, item.limit, resultLimit, printTestMessage(index, item.message))
|
||||
}
|
||||
}
|
||||
|
||||
func printTestMessage(index int, message string) string {
|
||||
return fmt.Sprintf("index: %d, message: %s", index, message)
|
||||
}
|
||||
Reference in New Issue
Block a user