code.gitea.io/gitea@v1.21.7/models/git/commit_status_test.go (about)

     1  // Copyright 2017 Gitea. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package git_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	git_model "code.gitea.io/gitea/models/git"
    11  	repo_model "code.gitea.io/gitea/models/repo"
    12  	"code.gitea.io/gitea/models/unittest"
    13  	"code.gitea.io/gitea/modules/structs"
    14  
    15  	"github.com/stretchr/testify/assert"
    16  )
    17  
    18  func TestGetCommitStatuses(t *testing.T) {
    19  	assert.NoError(t, unittest.PrepareTestDatabase())
    20  
    21  	repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
    22  
    23  	sha1 := "1234123412341234123412341234123412341234"
    24  
    25  	statuses, maxResults, err := git_model.GetCommitStatuses(db.DefaultContext, &git_model.CommitStatusOptions{
    26  		ListOptions: db.ListOptions{Page: 1, PageSize: 50},
    27  		RepoID:      repo1.ID,
    28  		SHA:         sha1,
    29  	})
    30  	assert.NoError(t, err)
    31  	assert.Equal(t, int(maxResults), 5)
    32  	assert.Len(t, statuses, 5)
    33  
    34  	assert.Equal(t, "ci/awesomeness", statuses[0].Context)
    35  	assert.Equal(t, structs.CommitStatusPending, statuses[0].State)
    36  	assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/statuses/1234123412341234123412341234123412341234", statuses[0].APIURL(db.DefaultContext))
    37  
    38  	assert.Equal(t, "cov/awesomeness", statuses[1].Context)
    39  	assert.Equal(t, structs.CommitStatusWarning, statuses[1].State)
    40  	assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/statuses/1234123412341234123412341234123412341234", statuses[1].APIURL(db.DefaultContext))
    41  
    42  	assert.Equal(t, "cov/awesomeness", statuses[2].Context)
    43  	assert.Equal(t, structs.CommitStatusSuccess, statuses[2].State)
    44  	assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/statuses/1234123412341234123412341234123412341234", statuses[2].APIURL(db.DefaultContext))
    45  
    46  	assert.Equal(t, "ci/awesomeness", statuses[3].Context)
    47  	assert.Equal(t, structs.CommitStatusFailure, statuses[3].State)
    48  	assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/statuses/1234123412341234123412341234123412341234", statuses[3].APIURL(db.DefaultContext))
    49  
    50  	assert.Equal(t, "deploy/awesomeness", statuses[4].Context)
    51  	assert.Equal(t, structs.CommitStatusError, statuses[4].State)
    52  	assert.Equal(t, "https://try.gitea.io/api/v1/repos/user2/repo1/statuses/1234123412341234123412341234123412341234", statuses[4].APIURL(db.DefaultContext))
    53  
    54  	statuses, maxResults, err = git_model.GetCommitStatuses(db.DefaultContext, &git_model.CommitStatusOptions{
    55  		ListOptions: db.ListOptions{Page: 2, PageSize: 50},
    56  		RepoID:      repo1.ID,
    57  		SHA:         sha1,
    58  	})
    59  	assert.NoError(t, err)
    60  	assert.Equal(t, int(maxResults), 5)
    61  	assert.Empty(t, statuses)
    62  }