選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

release_test.go 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package repo
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models"
  8. "code.gitea.io/gitea/modules/test"
  9. "code.gitea.io/gitea/modules/web"
  10. "code.gitea.io/gitea/services/forms"
  11. )
  12. func TestNewReleasePost(t *testing.T) {
  13. for _, testCase := range []struct {
  14. RepoID int64
  15. UserID int64
  16. TagName string
  17. Form forms.NewReleaseForm
  18. }{
  19. {
  20. RepoID: 1,
  21. UserID: 2,
  22. TagName: "v1.1", // pre-existing tag
  23. Form: forms.NewReleaseForm{
  24. TagName: "newtag",
  25. Target: "master",
  26. Title: "title",
  27. Content: "content",
  28. },
  29. },
  30. {
  31. RepoID: 1,
  32. UserID: 2,
  33. TagName: "newtag",
  34. Form: forms.NewReleaseForm{
  35. TagName: "newtag",
  36. Target: "master",
  37. Title: "title",
  38. Content: "content",
  39. },
  40. },
  41. } {
  42. models.PrepareTestEnv(t)
  43. ctx := test.MockContext(t, "user2/repo1/releases/new")
  44. test.LoadUser(t, ctx, 2)
  45. test.LoadRepo(t, ctx, 1)
  46. test.LoadGitRepo(t, ctx)
  47. web.SetForm(ctx, &testCase.Form)
  48. NewReleasePost(ctx)
  49. models.AssertExistsAndLoadBean(t, &models.Release{
  50. RepoID: 1,
  51. PublisherID: 2,
  52. TagName: testCase.Form.TagName,
  53. Target: testCase.Form.Target,
  54. Title: testCase.Form.Title,
  55. Note: testCase.Form.Content,
  56. }, models.Cond("is_draft=?", len(testCase.Form.Draft) > 0))
  57. ctx.Repo.GitRepo.Close()
  58. }
  59. }