aboutsummaryrefslogtreecommitdiffstats
path: root/integrations
diff options
context:
space:
mode:
authorMarc Brückner <marc@ma-br.de>2018-01-16 09:54:13 +0100
committerLauris BH <lauris@nix.lv>2018-01-16 10:54:13 +0200
commit695b10beddc640d333fd5864cb6edb03e540b344 (patch)
tree8bf0e4da05f6fc8b5303780abfe2b36bccf4f8bd /integrations
parentcc0c4a30a778b27393923d29fe97b8bc33f345f4 (diff)
downloadgitea-695b10beddc640d333fd5864cb6edb03e540b344.tar.gz
gitea-695b10beddc640d333fd5864cb6edb03e540b344.zip
Fix API-Endpoint release (#3012)
* Fixes API-Endpoint release (#3005) * Using context.ReferencesGitRepo(); doing the same in the PATCH route. * Add release create, get and update test
Diffstat (limited to 'integrations')
-rw-r--r--integrations/api_releases_test.go85
1 files changed, 85 insertions, 0 deletions
diff --git a/integrations/api_releases_test.go b/integrations/api_releases_test.go
new file mode 100644
index 0000000000..678075935c
--- /dev/null
+++ b/integrations/api_releases_test.go
@@ -0,0 +1,85 @@
+// Copyright 2018 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 integrations
+
+import (
+ "fmt"
+ "net/http"
+ "testing"
+
+ "code.gitea.io/git"
+ "code.gitea.io/gitea/models"
+ api "code.gitea.io/sdk/gitea"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestAPICreateRelease(t *testing.T) {
+ prepareTestEnv(t)
+
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
+ owner := models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
+ session := loginUser(t, owner.LowerName)
+
+ gitRepo, err := git.OpenRepository(repo.RepoPath())
+ assert.NoError(t, err)
+
+ err = gitRepo.CreateTag("v0.0.1", "master")
+ assert.NoError(t, err)
+
+ commitID, err := gitRepo.GetTagCommitID("v0.0.1")
+ assert.NoError(t, err)
+
+ urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases",
+ owner.Name, repo.Name)
+ req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateReleaseOption{
+ TagName: "v0.0.1",
+ Title: "v0.0.1",
+ Note: "test",
+ IsDraft: false,
+ IsPrerelease: false,
+ Target: commitID,
+ })
+ resp := session.MakeRequest(t, req, http.StatusCreated)
+
+ var newRelease api.Release
+ DecodeJSON(t, resp, &newRelease)
+ models.AssertExistsAndLoadBean(t, &models.Release{
+ ID: newRelease.ID,
+ TagName: newRelease.TagName,
+ Title: newRelease.Title,
+ Note: newRelease.Note,
+ })
+
+ urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/releases/%d",
+ owner.Name, repo.Name, newRelease.ID)
+ req = NewRequest(t, "GET", urlStr)
+ resp = session.MakeRequest(t, req, http.StatusOK)
+
+ var release api.Release
+ DecodeJSON(t, resp, &release)
+
+ assert.Equal(t, newRelease.TagName, release.TagName)
+ assert.Equal(t, newRelease.Title, release.Title)
+ assert.Equal(t, newRelease.Note, release.Note)
+
+ req = NewRequestWithJSON(t, "PATCH", urlStr, &api.EditReleaseOption{
+ TagName: release.TagName,
+ Title: release.Title,
+ Note: "updated",
+ IsDraft: &release.IsDraft,
+ IsPrerelease: &release.IsPrerelease,
+ Target: release.Target,
+ })
+ resp = session.MakeRequest(t, req, http.StatusOK)
+
+ DecodeJSON(t, resp, &newRelease)
+ models.AssertExistsAndLoadBean(t, &models.Release{
+ ID: newRelease.ID,
+ TagName: newRelease.TagName,
+ Title: newRelease.Title,
+ Note: newRelease.Note,
+ })
+}