github.com/OnkarRuikar/reviewdog@v0.0.0-20230802094019-bc1001e3b2e5/service/gerrit/change_diff_test.go (about)

     1  package gerrit
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"net/http"
     7  	"net/http/httptest"
     8  	"testing"
     9  
    10  	"golang.org/x/build/gerrit"
    11  )
    12  
    13  func TestChangeDiff_Diff(t *testing.T) {
    14  	getChangeDetailAPICall := 0
    15  
    16  	mux := http.NewServeMux()
    17  	mux.HandleFunc("/changes/changeID/detail", func(w http.ResponseWriter, r *http.Request) {
    18  		getChangeDetailAPICall++
    19  		if r.Method != http.MethodGet {
    20  			t.Errorf("unexpected access: %v %v", r.Method, r.URL)
    21  		}
    22  
    23  		fmt.Fprintf(w, ")]}\n{\"current_revision\": \"HEAD\"}")
    24  	})
    25  
    26  	ts := httptest.NewServer(mux)
    27  	defer ts.Close()
    28  
    29  	cli := gerrit.NewClient(ts.URL, gerrit.NoAuth)
    30  
    31  	g, err := NewChangeDiff(cli, "HEAD^", "changeID")
    32  	if err != nil {
    33  		t.Fatal(err)
    34  	}
    35  	if _, err := g.Diff(context.Background()); err != nil {
    36  		t.Fatal(err)
    37  	}
    38  	if getChangeDetailAPICall != 1 {
    39  		t.Errorf("Get GitLab MergeRequest API called %v times, want once", getChangeDetailAPICall)
    40  	}
    41  }