go-common/app/tool/saga/service/gitlab/gitlab_test.go
2019-04-22 18:49:16 +08:00

142 lines
3.2 KiB
Go

package gitlab
import (
"flag"
"testing"
"go-common/app/tool/saga/conf"
. "github.com/smartystreets/goconvey/convey"
)
var (
g *Gitlab
)
func init() {
var (
err error
)
g = New("http://gitlab.bilibili.co/api/v4", "z3nN4s4BVX5oNYXKbEPL")
flag.Set("conf", "/Users/bilibili/go/src/go-common/app/tool/saga/cmd/saga-test.toml")
if err = conf.Init(); err != nil {
panic(err)
}
}
// Test Function HostToken
func TestHostToken(t *testing.T) {
Convey("Test HostToken", t, func() {
var (
host string
token string
err error
)
host, token, err = g.HostToken()
So(err, ShouldBeNil)
So(host, ShouldEqual, "gitlab.bilibili.co")
So(token, ShouldEqual, "z3nN4s4BVX5oNYXKbEPL")
})
}
// TODO AutoPush
// Test MR Create/Close
// Test MRNote Create/Update/Delete
//func TestCreateMRNote(t *testing.T) {
// Convey("Test CreateMRNote", t, func() {
// var (
// err error
// noteID int
//
// mr *gitlab.MergeRequest
// //res *gitlab.Response
//
// // MR CreateMergeRequestOptions Info
// title = "test"
// description = "test"
// sourceBranch = "chy-saga-test"
// targetBranch = "saga-test-1"
// assigneeID = 15
// projectID = 23
//
// //MR Info
// state string
// status string
// )
//
// // Create CreateMergeRequestOptions Instance
// opt := new(gitlab.CreateMergeRequestOptions)
// opt.Title = &title
// opt.Description = &description
// opt.SourceBranch = &sourceBranch
// opt.TargetBranch = &targetBranch
// opt.AssigneeID = &assigneeID
// opt.TargetProjectID = &projectID
//
// // Create MergeRequest
// mr, _, err = g.client.MergeRequests.CreateMergeRequest(35, opt)
// So(err, ShouldBeNil)
//
// // Query MR Status
// state = mr.State
// status = mr.MergeStatus
// So(state, ShouldEqual, "opened")
// So(status, ShouldEqual, "cannot_be_merged")
//
// // Create MRNote
// noteID, err = g.CreateMRNote(projectID, mr.IID, "CreateMRNote: PASS!")
// So(err, ShouldBeNil)
// So(noteID, ShouldNotBeNil)
//
// // Update MRNote
// err = g.UpdateMRNote(projectID, mr.IID, noteID, "CreateMRNote: PASS!\nUpdateMRNote: PASS!")
// So(err, ShouldBeNil)
//
// // Delete MRNote
// err = g.DeleteMRNote(projectID, mr.IID, noteID)
// So(err, ShouldBeNil)
//
// // Accept MR
// err = g.AcceptMR(projectID, mr.IID, "Accept MR: PASS!")
// So(err, ShouldBeNil)
//
// //Close MR
// //err = g.CloseMR(projectID, mr.IID)
// //So(err, ShouldBeNil)
//
// // Report
// noteID, err = g.CreateMRNote(projectID, mr.IID, "- MR Create Successfully!\n"+
// "- MRNote Create Successfully\n"+
// "- MRNote Update Successfully\n"+
// "- MRNote Delete Successfully\n"+
// "- MR Accept Successfully\n"+
// "- MR Close Successfully")
// So(err, ShouldBeNil)
// })
//}
func TestProjectID(t *testing.T) {
Convey("Test ProjectID", t, func() {
var (
projID int
err error
)
projID, err = g.ProjectID("git@gitlab.bilibili.co:platform/go-common.git")
So(err, ShouldBeNil)
So(projID, ShouldEqual, 23)
})
}
func TestCommitDiff(t *testing.T) {
Convey("Test CommitDiff", t, func() {
var (
err error
files []string
)
files, err = g.CommitDiff(23, "f5c9bfa037771b7f8179db7a245a25695c90be9b")
So(err, ShouldBeNil)
So(files[0], ShouldEqual, ".gitlab-ci.yml")
})
}