github.com/nginxinc/kubernetes-ingress@v1.12.5/internal/nginx/verify_test.go (about)

     1  package nginx
     2  
     3  import (
     4  	"bytes"
     5  	"io/ioutil"
     6  	"net/http"
     7  	"strings"
     8  	"testing"
     9  	"time"
    10  )
    11  
    12  type Transport struct {
    13  }
    14  
    15  func (c Transport) RoundTrip(req *http.Request) (*http.Response, error) {
    16  	return &http.Response{
    17  		StatusCode: 200,
    18  		Body:       ioutil.NopCloser(bytes.NewBufferString("42")),
    19  		Header:     make(http.Header),
    20  	}, nil
    21  }
    22  
    23  func getTestHTTPClient() *http.Client {
    24  	ts := Transport{}
    25  	tClient := &http.Client{
    26  		Transport: ts,
    27  	}
    28  	return tClient
    29  }
    30  
    31  func TestVerifyClient(t *testing.T) {
    32  	c := verifyClient{
    33  		client:  getTestHTTPClient(),
    34  		timeout: 25 * time.Millisecond,
    35  	}
    36  
    37  	configVersion, err := c.GetConfigVersion()
    38  	if err != nil {
    39  		t.Errorf("error getting config version: %v", err)
    40  	}
    41  	if configVersion != 42 {
    42  		t.Errorf("got bad config version, expected 42 got %v", configVersion)
    43  	}
    44  
    45  	err = c.WaitForCorrectVersion(43)
    46  	if err == nil {
    47  		t.Error("expected error from WaitForCorrectVersion ")
    48  	}
    49  	err = c.WaitForCorrectVersion(42)
    50  	if err != nil {
    51  		t.Errorf("error waiting for config version: %v", err)
    52  	}
    53  }
    54  
    55  func TestConfigWriter(t *testing.T) {
    56  	cw, err := newVerifyConfigGenerator()
    57  	if err != nil {
    58  		t.Fatalf("error instantiating ConfigWriter: %v", err)
    59  	}
    60  	config, err := cw.GenerateVersionConfig(1, true)
    61  	if err != nil {
    62  		t.Errorf("error generating version config: %v", err)
    63  	}
    64  	if !strings.Contains(string(config), "configVersion") {
    65  		t.Errorf("configVersion endpoint not set. config contents: %v", string(config))
    66  	}
    67  	if !strings.Contains(string(config), "opentracing off") {
    68  		t.Errorf("opentracing directive missing when is enabled. config contents: %v", string(config))
    69  	}
    70  }