From 0cb609fc8717077092879dc3a12da787d4ca0b3d Mon Sep 17 00:00:00 2001 From: Theresa Gresch Date: Tue, 14 Jul 2020 10:31:37 +0200 Subject: [PATCH] Backend: Add unit tests for internal/api --- internal/api/album_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/internal/api/album_test.go b/internal/api/album_test.go index 537d0d40c..3073386a6 100644 --- a/internal/api/album_test.go +++ b/internal/api/album_test.go @@ -266,3 +266,36 @@ func TestDownloadAlbum(t *testing.T) { assert.Equal(t, http.StatusOK, r.Code) }) } + +func TestCloneAlbums(t *testing.T) { + app, router, _ := NewApiTest() + CreateAlbum(router) + r := PerformRequestWithBody(app, "POST", "/api/v1/albums", `{"Title": "Update", "Description": "To be updated", "Notes": "", "Favorite": true}`) + assert.Equal(t, http.StatusOK, r.Code) + uid := gjson.Get(r.Body.String(), "UID").String() + + t.Run("successful request", func(t *testing.T) { + app, router, _ := NewApiTest() + CloneAlbums(router) + r := PerformRequestWithBody(app, "POST", "/api/v1/albums/"+uid+"/clone", `{"albums": ["`+uid+`"]}`) + val := gjson.Get(r.Body.String(), "message") + assert.Equal(t, "Album contents cloned", val.String()) + assert.Equal(t, http.StatusOK, r.Code) + }) + + t.Run("not found", func(t *testing.T) { + app, router, _ := NewApiTest() + CloneAlbums(router) + r := PerformRequestWithBody(app, "POST", "/api/v1/albums/123/clone", `{albums: ["123"]}`) + assert.Equal(t, http.StatusNotFound, r.Code) + }) + + t.Run("bad request", func(t *testing.T) { + app, router, _ := NewApiTest() + CloneAlbums(router) + r := PerformRequestWithBody(app, "POST", "/api/v1/albums/"+uid+"/clone", `{albums: ["`+uid+`"]}`) + val := gjson.Get(r.Body.String(), "error") + assert.Equal(t, "Invalid request", val.String()) + assert.Equal(t, http.StatusBadRequest, r.Code) + }) +}