From 98f624a3ddf6556e5887ff67d10f6f328513a6b2 Mon Sep 17 00:00:00 2001 From: zubeen Date: Fri, 3 Oct 2025 19:17:21 +0530 Subject: [PATCH 1/3] test: add test for ApproveOrRejectProjectDeployment --- deployments_test.go | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/deployments_test.go b/deployments_test.go index e95d8934..e901082e 100644 --- a/deployments_test.go +++ b/deployments_test.go @@ -794,3 +794,49 @@ func TestDeploymentsService_UpdateProjectDeployment(t *testing.T) { require.Nil(t, d) require.Equal(t, http.StatusNotFound, resp.StatusCode) } + +func TestDeploymentsService_ApproveOrRejectProjectDeployment(t *testing.T) { + t.Parallel() + mux, client := setup(t) + + mux.HandleFunc("/api/v4/projects/1/deployments/1/approval", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, http.MethodPost) + fmt.Fprint(w, `{ + "id": 1, + "status": "approved", + "user": { + "id": 1, + "name": "Administrator", + "username": "root", + "state": "active", + "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "web_url": "http://localhost:3000/root" + } + }`) + }) + + // Approve deployment successfully + resp, err := client.Deployments.ApproveOrRejectProjectDeployment(1, 1, nil) + require.NoError(t, err) + require.NotNil(t, resp) + require.Equal(t, 200, resp.StatusCode) + + // Invalid project ID type + resp, err = client.Deployments.ApproveOrRejectProjectDeployment(1.01, 1, nil) + require.ErrorIs(t, err, ErrInvalidIDType) + require.Nil(t, resp) + + // Request option error + resp, err = client.Deployments.ApproveOrRejectProjectDeployment(1, 1, nil, errorOption) + require.ErrorIs(t, err, errRequestOptionFunc) + require.Nil(t, resp) + + // Non-existent project + mux.HandleFunc("/api/v4/projects/3/deployments/1/approval", func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "Not Found", http.StatusNotFound) + }) + resp, err = client.Deployments.ApproveOrRejectProjectDeployment(3, 1, nil) + require.Error(t, err) + require.NotNil(t, resp) + require.Equal(t, http.StatusNotFound, resp.StatusCode) +} -- GitLab From 52040481136af60c0e700fa505d9bf7e0a48e7b2 Mon Sep 17 00:00:00 2001 From: Zubeen Date: Fri, 3 Oct 2025 19:27:37 +0530 Subject: [PATCH 2/3] Apply 1 suggestion(s) to 1 file(s) Co-authored-by: GitLab Duo --- deployments_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments_test.go b/deployments_test.go index e901082e..10d73763 100644 --- a/deployments_test.go +++ b/deployments_test.go @@ -819,7 +819,7 @@ func TestDeploymentsService_ApproveOrRejectProjectDeployment(t *testing.T) { resp, err := client.Deployments.ApproveOrRejectProjectDeployment(1, 1, nil) require.NoError(t, err) require.NotNil(t, resp) - require.Equal(t, 200, resp.StatusCode) + require.Equal(t, http.StatusOK, resp.StatusCode) // Invalid project ID type resp, err = client.Deployments.ApproveOrRejectProjectDeployment(1.01, 1, nil) -- GitLab From 4feb53c6688e4bcfcec236760699dc3146042dd5 Mon Sep 17 00:00:00 2001 From: zubeen Date: Fri, 17 Oct 2025 23:06:59 +0530 Subject: [PATCH 3/3] separate out tests --- deployments_test.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/deployments_test.go b/deployments_test.go index 10d73763..43367972 100644 --- a/deployments_test.go +++ b/deployments_test.go @@ -815,27 +815,39 @@ func TestDeploymentsService_ApproveOrRejectProjectDeployment(t *testing.T) { }`) }) - // Approve deployment successfully resp, err := client.Deployments.ApproveOrRejectProjectDeployment(1, 1, nil) require.NoError(t, err) require.NotNil(t, resp) require.Equal(t, http.StatusOK, resp.StatusCode) +} + +func TestDeploymentsService_ApproveOrRejectProjectDeployment_InvalidProjectIDType(t *testing.T) { + t.Parallel() + _, client := setup(t) - // Invalid project ID type - resp, err = client.Deployments.ApproveOrRejectProjectDeployment(1.01, 1, nil) + resp, err := client.Deployments.ApproveOrRejectProjectDeployment(1.01, 1, nil) require.ErrorIs(t, err, ErrInvalidIDType) require.Nil(t, resp) +} + +func TestDeploymentsService_ApproveOrRejectProjectDeployment_RequestOptionError(t *testing.T) { + t.Parallel() + _, client := setup(t) - // Request option error - resp, err = client.Deployments.ApproveOrRejectProjectDeployment(1, 1, nil, errorOption) + resp, err := client.Deployments.ApproveOrRejectProjectDeployment(1, 1, nil, errorOption) require.ErrorIs(t, err, errRequestOptionFunc) require.Nil(t, resp) +} + +func TestDeploymentsService_ApproveOrRejectProjectDeployment_NonExistentProject(t *testing.T) { + t.Parallel() + mux, client := setup(t) - // Non-existent project mux.HandleFunc("/api/v4/projects/3/deployments/1/approval", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Not Found", http.StatusNotFound) }) - resp, err = client.Deployments.ApproveOrRejectProjectDeployment(3, 1, nil) + + resp, err := client.Deployments.ApproveOrRejectProjectDeployment(3, 1, nil) require.Error(t, err) require.NotNil(t, resp) require.Equal(t, http.StatusNotFound, resp.StatusCode) -- GitLab