github.com/reviewdog/reviewdog@v0.17.5-0.20240516205324-0cd103a83d58/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/xanzy/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 }