Fix missing branch in release bug (#3108)
This commit is contained in:
		
							parent
							
								
									68179dc676
								
							
						
					
					
						commit
						596308f213
					
				
					 3 changed files with 72 additions and 0 deletions
				
			
		|  | @ -9,6 +9,7 @@ import ( | |||
| 	"net/url" | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/git" | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 
 | ||||
|  | @ -51,6 +52,15 @@ func LoadUser(t *testing.T, ctx *context.Context, userID int64) { | |||
| 	ctx.User = models.AssertExistsAndLoadBean(t, &models.User{ID: userID}).(*models.User) | ||||
| } | ||||
| 
 | ||||
| // LoadGitRepo load a git repo into a test context. Requires that ctx.Repo has
 | ||||
| // already been populated.
 | ||||
| func LoadGitRepo(t *testing.T, ctx *context.Context) { | ||||
| 	assert.NoError(t, ctx.Repo.Repository.GetOwner()) | ||||
| 	var err error | ||||
| 	ctx.Repo.GitRepo, err = git.OpenRepository(ctx.Repo.Repository.RepoPath()) | ||||
| 	assert.NoError(t, err) | ||||
| } | ||||
| 
 | ||||
| type mockLocale struct{} | ||||
| 
 | ||||
| func (l mockLocale) Language() string { | ||||
|  |  | |||
|  | @ -191,6 +191,7 @@ func NewReleasePost(ctx *context.Context, form auth.NewReleaseForm) { | |||
| 
 | ||||
| 		rel.Title = form.Title | ||||
| 		rel.Note = form.Content | ||||
| 		rel.Target = form.Target | ||||
| 		rel.IsDraft = len(form.Draft) > 0 | ||||
| 		rel.IsPrerelease = form.Prerelease | ||||
| 		rel.PublisherID = ctx.User.ID | ||||
|  |  | |||
							
								
								
									
										61
									
								
								routers/repo/release_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								routers/repo/release_test.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,61 @@ | |||
| // Copyright 2017 The Gitea Authors. All rights reserved.
 | ||||
| // Use of this source code is governed by a MIT-style
 | ||||
| // license that can be found in the LICENSE file.
 | ||||
| 
 | ||||
| package repo | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/auth" | ||||
| 	"code.gitea.io/gitea/modules/test" | ||||
| ) | ||||
| 
 | ||||
| func TestNewReleasePost(t *testing.T) { | ||||
| 	for _, testCase := range []struct { | ||||
| 		RepoID  int64 | ||||
| 		UserID  int64 | ||||
| 		TagName string | ||||
| 		Form    auth.NewReleaseForm | ||||
| 	}{ | ||||
| 		{ | ||||
| 			RepoID:  1, | ||||
| 			UserID:  2, | ||||
| 			TagName: "v1.1", // pre-existing tag
 | ||||
| 			Form: auth.NewReleaseForm{ | ||||
| 				TagName: "newtag", | ||||
| 				Target:  "master", | ||||
| 				Title:   "title", | ||||
| 				Content: "content", | ||||
| 			}, | ||||
| 		}, | ||||
| 		{ | ||||
| 			RepoID:  1, | ||||
| 			UserID:  2, | ||||
| 			TagName: "newtag", | ||||
| 			Form: auth.NewReleaseForm{ | ||||
| 				TagName: "newtag", | ||||
| 				Target:  "master", | ||||
| 				Title:   "title", | ||||
| 				Content: "content", | ||||
| 			}, | ||||
| 		}, | ||||
| 	} { | ||||
| 		models.PrepareTestEnv(t) | ||||
| 
 | ||||
| 		ctx := test.MockContext(t, "user2/repo1/releases/new") | ||||
| 		test.LoadUser(t, ctx, 2) | ||||
| 		test.LoadRepo(t, ctx, 1) | ||||
| 		test.LoadGitRepo(t, ctx) | ||||
| 		NewReleasePost(ctx, testCase.Form) | ||||
| 		models.AssertExistsAndLoadBean(t, &models.Release{ | ||||
| 			RepoID:      1, | ||||
| 			PublisherID: 2, | ||||
| 			TagName:     testCase.Form.TagName, | ||||
| 			Target:      testCase.Form.Target, | ||||
| 			Title:       testCase.Form.Title, | ||||
| 			Note:        testCase.Form.Content, | ||||
| 		}, models.Cond("is_draft=?", len(testCase.Form.Draft) > 0)) | ||||
| 	} | ||||
| } | ||||
		Loading…
	
		Reference in a new issue