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 }