github.com/vipcoin-gold/reviewdog@v1.0.2/service/gitlab/gitlab_mr_diff_test.go (about)

     1  package gitlab
     2  
     3  import (
     4  	"context"
     5  	"net/http"
     6  	"net/http/httptest"
     7  	"testing"
     8  
     9  	"github.com/vipcoin-gold/go-gitlab"
    10  )
    11  
    12  func TestGitLabMergeRequestDiff_Diff(t *testing.T) {
    13  	getMRAPICall := 0
    14  	getBranchAPICall := 0
    15  	mux := http.NewServeMux()
    16  	mux.HandleFunc("/api/v4/projects/o/r/merge_requests/14", func(w http.ResponseWriter, r *http.Request) {
    17  		getMRAPICall++
    18  		if r.Method != http.MethodGet {
    19  			t.Errorf("unexpected access: %v %v", r.Method, r.URL)
    20  		}
    21  		w.Write([]byte(`{"target_project_id": 14, "target_branch": "test-branch"}`))
    22  	})
    23  	mux.HandleFunc("/api/v4/projects/14/repository/branches/test-branch", func(w http.ResponseWriter, r *http.Request) {
    24  		getBranchAPICall++
    25  		if r.Method != http.MethodGet {
    26  			t.Errorf("unexpected access: %v %v", r.Method, r.URL)
    27  		}
    28  		w.Write([]byte(`{"commit": {"id": "HEAD~"}}`))
    29  	})
    30  
    31  	ts := httptest.NewServer(mux)
    32  	defer ts.Close()
    33  
    34  	cli, err := gitlab.NewClient("", gitlab.WithBaseURL(ts.URL+"/api/v4"))
    35  	if err != nil {
    36  		t.Fatal(err)
    37  	}
    38  
    39  	g, err := NewGitLabMergeRequestDiff(cli, "o", "r", 14, "HEAD")
    40  	if err != nil {
    41  		t.Fatal(err)
    42  	}
    43  	if _, err := g.Diff(context.Background()); err != nil {
    44  		t.Fatal(err)
    45  	}
    46  	if getMRAPICall != 1 {
    47  		t.Errorf("Get GitLab MergeRequest API called %v times, want once", getMRAPICall)
    48  	}
    49  	if getBranchAPICall != 1 {
    50  		t.Errorf("Get GitLab Branch API called %v times, want once", getBranchAPICall)
    51  	}
    52  }