* add devops client interface Signed-off-by: runzexia <runzexia@yunify.com> * direct return jenkins Signed-off-by: runzexia <runzexia@yunify.com> * add some interface Signed-off-by: runzexia <runzexia@yunify.com> * update Signed-off-by: runzexia <runzexia@yunify.com> * update interface Signed-off-by: runzexia <runzexia@yunify.com> * update Signed-off-by: runzexia <runzexia@yunify.com> * credential op structs Signed-off-by: runzexia <runzexia@yunify.com> * status Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * update interface Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * credential handler Signed-off-by: runzexia <runzexia@yunify.com> * update devopsoperator func Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * get build sonar Signed-off-by: runzexia <runzexia@yunify.com> * sonar handler * mv code to cilent Signed-off-by: runzexia <runzexia@yunify.com> * update Signed-off-by: runzexia <runzexia@yunify.com> * project member handler Signed-off-by: runzexia <runzexia@yunify.com> * update pipeline operator interface Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add tenant devops handler Signed-off-by: runzexia <runzexia@yunify.com> * update merge Signed-off-by: runzexia <runzexia@yunify.com> * clean Signed-off-by: runzexia <runzexia@yunify.com> * fmt Signed-off-by: runzexia <runzexia@yunify.com> * update ListPipelineRuns Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * complate pipelineOperator interface Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * update HttpParameters Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add pipeline steps interface Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * update pipeline GetNodesDetail Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add s2i api Signed-off-by: runzexia <runzexia@yunify.com> * add branch pipeline interface and update handler Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add scan branch interface and update handler Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add common interface and update handler Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add SCM interface and update handler Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add handler Signed-off-by: runzexia <runzexia@yunify.com> * add fake s3 Signed-off-by: runzexia <runzexia@yunify.com> * add webhook&check interface and update handler Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * clean Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * clean Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * format Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add some func Signed-off-by: runzexia <runzexia@yunify.com> * clean code Signed-off-by: runzexia <runzexia@yunify.com> * implement interface Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * fix interface GetBranchArtifacts Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add s2ibinary upload test Signed-off-by: runzexia <runzexia@yunify.com> * tenant devops Signed-off-by: runzexia <runzexia@yunify.com> * update tenant Signed-off-by: runzexia <runzexia@yunify.com> * fake Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add some unit test Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * add devops tenant handler Signed-off-by: runzexia <runzexia@yunify.com> * status Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * status Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * status Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * update fake test Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * update unit test and fake data Signed-off-by: zhuxiaoyang <sunzhu@yunify.com> * update Co-authored-by: Xiaoyang Zhu <sunzhu@yunify.com>
114 lines
2.9 KiB
Go
114 lines
2.9 KiB
Go
package devops
|
|
|
|
import (
|
|
"kubesphere.io/kubesphere/pkg/simple/client/devops"
|
|
"kubesphere.io/kubesphere/pkg/simple/client/devops/fake"
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
const baseUrl = "http://127.0.0.1/kapis/devops.kubesphere.io/v1alpha2/"
|
|
|
|
func TestGetNodesDetail(t *testing.T) {
|
|
fakeData := make(map[string]interface{})
|
|
PipelineRunNodes := []devops.PipelineRunNodes{
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "1",
|
|
Result: "SUCCESS",
|
|
},
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "2",
|
|
Result: "SUCCESS",
|
|
},
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "3",
|
|
Result: "SUCCESS",
|
|
},
|
|
}
|
|
|
|
NodeSteps := []devops.NodeSteps{
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "1",
|
|
Result: "SUCCESS",
|
|
},
|
|
}
|
|
|
|
fakeData["project1-pipeline1-run1"] = PipelineRunNodes
|
|
fakeData["project1-pipeline1-run1-1"] = NodeSteps
|
|
fakeData["project1-pipeline1-run1-2"] = NodeSteps
|
|
fakeData["project1-pipeline1-run1-3"] = NodeSteps
|
|
|
|
devopsClient := fake.NewFakeDevops(fakeData)
|
|
|
|
devopsOperator := NewDevopsOperator(devopsClient)
|
|
|
|
httpReq, _ := http.NewRequest(http.MethodGet, baseUrl+"devops/project1/pipelines/pipeline1/runs/run1/nodesdetail/?limit=10000", nil)
|
|
|
|
nodesDetails, err := devopsOperator.GetNodesDetail("project1", "pipeline1", "run1", httpReq)
|
|
if err != nil || nodesDetails == nil {
|
|
t.Fatalf("should not get error %+v", err)
|
|
}
|
|
|
|
for _, v := range nodesDetails {
|
|
if v.Steps[0].ID == "" {
|
|
t.Fatalf("Can not get any step.")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetBranchNodesDetail(t *testing.T) {
|
|
fakeData := make(map[string]interface{})
|
|
|
|
BranchPipelineRunNodes := []devops.BranchPipelineRunNodes{
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "1",
|
|
Result: "SUCCESS",
|
|
},
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "2",
|
|
Result: "SUCCESS",
|
|
},
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "3",
|
|
Result: "SUCCESS",
|
|
},
|
|
}
|
|
|
|
BranchNodeSteps := []devops.NodeSteps{
|
|
{
|
|
DisplayName: "Deploy to Kubernetes",
|
|
ID: "1",
|
|
Result: "SUCCESS",
|
|
},
|
|
}
|
|
|
|
fakeData["project1-pipeline1-branch1-run1"] = BranchPipelineRunNodes
|
|
fakeData["project1-pipeline1-branch1-run1-1"] = BranchNodeSteps
|
|
fakeData["project1-pipeline1-branch1-run1-2"] = BranchNodeSteps
|
|
fakeData["project1-pipeline1-branch1-run1-3"] = BranchNodeSteps
|
|
|
|
devopsClient := fake.NewFakeDevops(fakeData)
|
|
|
|
devopsOperator := NewDevopsOperator(devopsClient)
|
|
|
|
httpReq, _ := http.NewRequest(http.MethodGet, baseUrl+"devops/project1/pipelines/pipeline1/branchs/branch1/runs/run1/nodesdetail/?limit=10000", nil)
|
|
|
|
nodesDetails, err := devopsOperator.GetBranchNodesDetail("project1", "pipeline1", "branch1", "run1", httpReq)
|
|
if err != nil || nodesDetails == nil {
|
|
t.Fatalf("should not get error %+v", err)
|
|
}
|
|
|
|
for _, v := range nodesDetails {
|
|
if v.Steps[0].ID == "" {
|
|
t.Fatalf("Can not get any step.")
|
|
}
|
|
}
|
|
}
|