Consistency checks for action unit tests (#1079)
This commit is contained in:
		
							parent
							
								
									cf80e19157
								
							
						
					
					
						commit
						4b286f282a
					
				
					 3 changed files with 34 additions and 7 deletions
				
			
		|  | @ -1,9 +1,11 @@ | |||
| package models | ||||
| 
 | ||||
| import ( | ||||
| 	"strings" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| ) | ||||
| 
 | ||||
|  | @ -46,6 +48,7 @@ func TestNewRepoAction(t *testing.T) { | |||
| 	AssertNotExistsBean(t, actionBean) | ||||
| 	assert.NoError(t, NewRepoAction(user, repo)) | ||||
| 	AssertExistsAndLoadBean(t, actionBean) | ||||
| 	CheckConsistencyFor(t, &Action{}) | ||||
| } | ||||
| 
 | ||||
| func TestRenameRepoAction(t *testing.T) { | ||||
|  | @ -58,6 +61,7 @@ func TestRenameRepoAction(t *testing.T) { | |||
| 	oldRepoName := repo.Name | ||||
| 	const newRepoName = "newRepoName" | ||||
| 	repo.Name = newRepoName | ||||
| 	repo.LowerName = strings.ToLower(newRepoName) | ||||
| 
 | ||||
| 	actionBean := &Action{ | ||||
| 		OpType:       ActionRenameRepo, | ||||
|  | @ -72,6 +76,10 @@ func TestRenameRepoAction(t *testing.T) { | |||
| 	AssertNotExistsBean(t, actionBean) | ||||
| 	assert.NoError(t, RenameRepoAction(user, oldRepoName, repo)) | ||||
| 	AssertExistsAndLoadBean(t, actionBean) | ||||
| 
 | ||||
| 	_, err := x.Id(repo.ID).Cols("name", "lower_name").Update(repo) | ||||
| 	assert.NoError(t, err) | ||||
| 	CheckConsistencyFor(t, &Action{}) | ||||
| } | ||||
| 
 | ||||
| func TestPushCommits_ToAPIPayloadCommits(t *testing.T) { | ||||
|  | @ -192,6 +200,7 @@ func TestUpdateIssuesCommit(t *testing.T) { | |||
| 	assert.NoError(t, UpdateIssuesCommit(user, repo, pushCommits)) | ||||
| 	AssertExistsAndLoadBean(t, commentBean) | ||||
| 	AssertExistsAndLoadBean(t, issueBean, "is_closed=1") | ||||
| 	CheckConsistencyFor(t, &Action{}) | ||||
| } | ||||
| 
 | ||||
| func TestCommitRepoAction(t *testing.T) { | ||||
|  | @ -242,6 +251,7 @@ func TestCommitRepoAction(t *testing.T) { | |||
| 		Commits:     pushCommits, | ||||
| 	})) | ||||
| 	AssertExistsAndLoadBean(t, actionBean) | ||||
| 	CheckConsistencyFor(t, &Action{}) | ||||
| } | ||||
| 
 | ||||
| func TestTransferRepoAction(t *testing.T) { | ||||
|  | @ -266,6 +276,10 @@ func TestTransferRepoAction(t *testing.T) { | |||
| 	AssertNotExistsBean(t, actionBean) | ||||
| 	assert.NoError(t, TransferRepoAction(user2, user2, repo)) | ||||
| 	AssertExistsAndLoadBean(t, actionBean) | ||||
| 
 | ||||
| 	_, err := x.Id(repo.ID).Cols("owner_id").Update(repo) | ||||
| 	assert.NoError(t, err) | ||||
| 	CheckConsistencyFor(t, &Action{}) | ||||
| } | ||||
| 
 | ||||
| func TestMergePullRequestAction(t *testing.T) { | ||||
|  | @ -287,6 +301,7 @@ func TestMergePullRequestAction(t *testing.T) { | |||
| 	AssertNotExistsBean(t, actionBean) | ||||
| 	assert.NoError(t, MergePullRequestAction(user, repo, issue)) | ||||
| 	AssertExistsAndLoadBean(t, actionBean) | ||||
| 	CheckConsistencyFor(t, &Action{}) | ||||
| } | ||||
| 
 | ||||
| func TestGetFeeds(t *testing.T) { | ||||
|  | @ -318,7 +333,5 @@ func TestGetFeeds2(t *testing.T) { | |||
| 
 | ||||
| 	actions, err = GetFeeds(user, user.ID, 0, true) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Len(t, actions, 1) | ||||
| 	assert.Equal(t, int64(2), actions[0].ID) | ||||
| 	assert.Equal(t, user.ID, actions[0].UserID) | ||||
| 	assert.Len(t, actions, 0) | ||||
| } | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ package models | |||
| 
 | ||||
| import ( | ||||
| 	"reflect" | ||||
| 	"strings" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"github.com/stretchr/testify/assert" | ||||
|  | @ -25,7 +26,8 @@ func CheckConsistencyForAll(t *testing.T) { | |||
| 		&PullRequest{}, | ||||
| 		&Milestone{}, | ||||
| 		&Label{}, | ||||
| 		&Team{}) | ||||
| 		&Team{}, | ||||
| 		&Action{}) | ||||
| } | ||||
| 
 | ||||
| // CheckConsistencyFor test that all matching database entries are consistent
 | ||||
|  | @ -37,7 +39,7 @@ func CheckConsistencyFor(t *testing.T, beansToCheck ...interface{}) { | |||
| 		ptrToSliceValue := reflect.New(sliceType) | ||||
| 		ptrToSliceValue.Elem().Set(sliceValue) | ||||
| 
 | ||||
| 		assert.NoError(t, x.Find(ptrToSliceValue.Interface())) | ||||
| 		assert.NoError(t, x.Where(bean).Find(ptrToSliceValue.Interface())) | ||||
| 		sliceValue = ptrToSliceValue.Elem() | ||||
| 
 | ||||
| 		for i := 0; i < sliceValue.Len(); i++ { | ||||
|  | @ -80,6 +82,7 @@ func (user *User) CheckForConsistency(t *testing.T) { | |||
| } | ||||
| 
 | ||||
| func (repo *Repository) CheckForConsistency(t *testing.T) { | ||||
| 	assert.Equal(t, repo.LowerName, strings.ToLower(repo.Name), "repo: %+v", repo) | ||||
| 	assertCount(t, &Star{RepoID: repo.ID}, repo.NumStars) | ||||
| 	assertCount(t, &Watch{RepoID: repo.ID}, repo.NumWatches) | ||||
| 	assertCount(t, &Milestone{RepoID: repo.ID}, repo.NumMilestones) | ||||
|  | @ -156,3 +159,14 @@ func (team *Team) CheckForConsistency(t *testing.T) { | |||
| 	assertCount(t, &TeamUser{TeamID: team.ID}, team.NumMembers) | ||||
| 	assertCount(t, &TeamRepo{TeamID: team.ID}, team.NumRepos) | ||||
| } | ||||
| 
 | ||||
| func (action *Action) CheckForConsistency(t *testing.T) { | ||||
| 	repo := AssertExistsAndLoadBean(t, &Repository{ID: action.RepoID}).(*Repository) | ||||
| 	owner := AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User) | ||||
| 	actor := AssertExistsAndLoadBean(t, &User{ID: action.ActUserID}).(*User) | ||||
| 
 | ||||
| 	assert.Equal(t, repo.Name, action.RepoName, "action: %+v", action) | ||||
| 	assert.Equal(t, repo.IsPrivate, action.IsPrivate, "action: %+v", action) | ||||
| 	assert.Equal(t, owner.Name, action.RepoUserName, "action: %+v", action) | ||||
| 	assert.Equal(t, actor.Name, action.ActUserName, "action: %+v", action) | ||||
| } | ||||
|  |  | |||
|  | @ -17,8 +17,8 @@ | |||
|   act_user_name: user3 | ||||
|   repo_id: 3 | ||||
|   repo_user_name: user3 | ||||
|   repo_name: repo3 # TODO old or new name? | ||||
|   is_private: false | ||||
|   repo_name: repo3 | ||||
|   is_private: true | ||||
|   content: oldRepoName | ||||
| 
 | ||||
| - | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue