Skip to content

Commit

Permalink
fix(tibuild): fix tests
Browse files Browse the repository at this point in the history
Signed-off-by: wuhuizuo <wuhuizuo@126.com>
  • Loading branch information
wuhuizuo committed May 21, 2024
1 parent 8b7b398 commit b5b4ecf
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
9 changes: 4 additions & 5 deletions tibuild/pkg/rest/repo/dev_build_repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func (m DevBuildRepo) Update(ctx context.Context, id int, req DevBuild) (resp *D
return &req, nil
}

func (m DevBuildRepo) List(ctx context.Context, option DevBuildListOption) (resp []*DevBuild, err error) {
func (m DevBuildRepo) List(ctx context.Context, option DevBuildListOption) ([]DevBuild, error) {
db := m.Db.Order("created_at DESC").Offset(int(option.Offset)).Limit(int(option.Size))
if option.Hotfix != nil {
db = db.Where(&DevBuild{Spec: DevBuildSpec{IsHotfix: *option.Hotfix}}, "IsHotfix")
Expand All @@ -61,19 +61,18 @@ func (m DevBuildRepo) List(ctx context.Context, option DevBuildListOption) (resp
db = db.Where(&DevBuild{Meta: DevBuildMeta{CreatedBy: *option.CreatedBy}}, "CreatedBy")
}

result := []*DevBuild{}
result := []DevBuild{}
if err := db.Find(&result).Error; err != nil {
return nil, fmt.Errorf("%s%w", err.Error(), ErrInternalError)
}

for i := range result {
err = outofDB(result[i])
if err != nil {
if err := outofDB(&result[i]); err != nil {
return nil, err
}
}

return result, err
return result, nil
}

func intoDB(entity *DevBuild) (err error) {
Expand Down
16 changes: 9 additions & 7 deletions tibuild/pkg/rest/repo/dev_build_repo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@ func TestDevBuildCreate(t *testing.T) {
repo := DevBuildRepo{Db: odb}
mock.ExpectBegin()
now := time.Unix(1, 0)
mock.ExpectExec("INSERT INTO `dev_builds`").WithArgs(now, "", now, ProductBr, "", "v6.7.0", CommunityEdition, "",
"AA=BB", "https://raw.example.com/Dockerfile", "", "pingcap/builder", "", false, "", false, "" /* target_img */, JenkinsEngine, "" /* githash */, "PENDING", 0, "", nil, nil, json.RawMessage("null"), json.RawMessage("null")).WillReturnResult(sqlmock.NewResult(1, 1))
mock.ExpectExec("INSERT INTO `dev_builds`").WithArgs(now, "", now, ProductBr, "", "", "v6.7.0", CommunityEdition, "",
"AA=BB", "https://raw.example.com/Dockerfile", "", "pingcap/builder", "", false, "", false, "", /* target_img */
JenkinsEngine, "PENDING", 0, "", nil, nil,
json.RawMessage("null"), json.RawMessage("null")).WillReturnResult(sqlmock.NewResult(1, 1))

mock.ExpectCommit()
entity, err := repo.Create(context.TODO(), DevBuild{
Expand Down Expand Up @@ -67,7 +69,7 @@ func TestDevBuildUpdate(t *testing.T) {
tekton_text, err := json.Marshal(tekton_status)
require.NoError(t, err)
mock.ExpectBegin()
mock.ExpectExec("UPDATE `dev_builds` SET").WithArgs(now, "", sqlmock.AnyArg(), ProductBr, "", "", "", "", "", "", "", "", "", false, "", false, "", "", "" /* GitHash */, "SUCCESS", 0, "", nil, nil, report_text, tekton_text, 1).WillReturnResult(sqlmock.NewResult(1, 1))
mock.ExpectExec("UPDATE `dev_builds` SET").WithArgs(now, "", sqlmock.AnyArg(), ProductBr, "", "", "", "", "", "", "", "", "", "", false, "", false, "", "", "SUCCESS", 0, "", nil, nil, report_text, tekton_text, 1).WillReturnResult(sqlmock.NewResult(1, 1))
mock.ExpectCommit()
entity, err := repo.Update(context.TODO(),
1,
Expand All @@ -89,7 +91,7 @@ func TestDevBuildGet(t *testing.T) {
repo := DevBuildRepo{Db: odb}
t.Run("proccessing", func(t *testing.T) {
rows := sqlmock.NewRows([]string{"id", "status"}).AddRow(1, BuildStatusProcessing)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT 1").WillReturnRows(rows)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT \\?").WillReturnRows(rows)
entity, err := repo.Get(context.TODO(), 1)
require.NoError(t, err)
require.Nil(t, entity.Status.BuildReport)
Expand All @@ -100,7 +102,7 @@ func TestDevBuildGet(t *testing.T) {
report_text, err := json.Marshal(report)
require.NoError(t, err)
rows := sqlmock.NewRows([]string{"id", "status", "build_report"}).AddRow(1, BuildStatusSuccess, report_text)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT 1").WillReturnRows(rows)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT \\?").WillReturnRows(rows)
entity, err := repo.Get(context.TODO(), 1)
require.NoError(t, err)
require.Equal(t, report, *entity.Status.BuildReport)
Expand All @@ -111,14 +113,14 @@ func TestDevBuildGet(t *testing.T) {
tekton_text, err := json.Marshal(tekton)
require.NoError(t, err)
rows := sqlmock.NewRows([]string{"id", "status", "tekton_status"}).AddRow(1, BuildStatusSuccess, tekton_text)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT 1").WillReturnRows(rows)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT \\?").WillReturnRows(rows)
entity, err := repo.Get(context.TODO(), 1)
require.NoError(t, err)
require.Equal(t, tekton, *entity.Status.TektonStatus)
require.Empty(t, entity.Status.TektonStatusJson)
})
t.Run("not found", func(t *testing.T) {
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT 1").WillReturnError(gorm.ErrRecordNotFound)
mock.ExpectQuery("SELECT \\* FROM `dev_builds` WHERE `dev_builds`.`id` = \\? LIMIT \\?").WillReturnError(gorm.ErrRecordNotFound)
entity, err := repo.Get(context.TODO(), 1)
require.Nil(t, entity)
require.ErrorIs(t, err, ErrNotFound)
Expand Down
2 changes: 1 addition & 1 deletion tibuild/pkg/rest/service/cloud_event_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func TestNewEvent(t *testing.T) {
require.NoError(t, err)
js, err := json.Marshal(ev)
require.NoError(t, err)
expected := `{"specversion":"1.0","id":"","source":"tibuild.pingcap.net/api/devbuilds/1","type":"net.pingcap.tibuild.devbuild.push","subject":"1","datacontenttype":"application/json","data":{"ref":"refs/heads/master","after":"754095a9f460dcf31f053045cfedfb00b9ad8e81", "before":"00000000000000000000000000000000000000000","repository":{"name":"pd","owner":{"login":"tikv"},"clone_url":"https://github.com/tikv/pd"}},"user":"some@pingcap.com"}`
expected := `{"specversion":"1.0","id":"","source":"tibuild.pingcap.net/api/devbuilds/1","type":"net.pingcap.tibuild.devbuild.push","subject":"1","datacontenttype":"application/json","data":{"ref":"refs/heads/master","after":"754095a9f460dcf31f053045cfedfb00b9ad8e81", "before":"00000000000000000000000000000000000000000","repository":{"full_name":"tikv/pd", "name":"pd","owner":{"login":"tikv"},"clone_url":"https://github.com/tikv/pd.git"}},"user":"some@pingcap.com"}`
require.JSONEq(t, expected, string(js))
}

Expand Down
2 changes: 1 addition & 1 deletion tibuild/pkg/rest/service/dev_build_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ func TestDevBuildGet(t *testing.T) {
Status: DevBuildStatus{PipelineBuildID: 4, TektonStatus: &TektonStatus{Pipelines: []TektonPipeline{{Name: "p1"}}}}}
entity, err := server.Get(context.TODO(), 1, DevBuildGetOption{})
require.NoError(t, err)
require.Equal(t, "http://tekton.net/p1", entity.Status.TektonStatus.Pipelines[0].URL)
require.Equal(t, "", entity.Status.TektonStatus.Pipelines[0].URL)
})
t.Run("sync", func(t *testing.T) {
mockedRepo.saved = DevBuild{ID: 1,
Expand Down

0 comments on commit b5b4ecf

Please sign in to comment.