@@ -5,6 +5,7 @@ package api
55
66import (
77 "context"
8+ "crypto/tls"
89 "fmt"
910 "io"
1011 "net/http"
@@ -28,10 +29,18 @@ type httpOpts struct {
2829type doHTTPFunc func (t * testing.T , method string , path string , opts httpOpts , f func (* testing.T , * http.Response ))
2930
3031func createServer (t * testing.T ) (* Server , doHTTPFunc ) {
32+ srv , doHTTP , _ := createServerWithConfig (t , "" )
33+ return srv , doHTTP
34+ }
35+
36+ func createServerWithConfig (t * testing.T , tomlConfig string ) (* Server , doHTTPFunc , doHTTPFunc ) {
3137 lg , _ := logger .CreateLoggerForTest (t )
3238 ready := atomic .NewBool (true )
3339 cfgmgr := mgrcfg .NewConfigManager ()
3440 require .NoError (t , cfgmgr .Init (context .Background (), "" , "" ))
41+ if tomlConfig != "" {
42+ require .NoError (t , cfgmgr .SetTOMLConfig ([]byte (tomlConfig )))
43+ }
3544 crtmgr := mgrcrt .NewCertManager ()
3645 require .NoError (t , crtmgr .Init (cfgmgr .GetConfig (), lg , cfgmgr .WatchConfig ()))
3746 nsMgr := newMockNamespaceManager ()
@@ -49,21 +58,31 @@ func createServer(t *testing.T) (*Server, doHTTPFunc) {
4958 require .NoError (t , srv .Close ())
5059 })
5160
52- addr := fmt .Sprintf ("http://%s" , srv .listener .Addr ().String ())
53- return srv , func (t * testing.T , method , pa string , opts httpOpts , f func (* testing.T , * http.Response )) {
54- if pa [0 ] != '/' {
55- pa = "/" + pa
56- }
57- req , err := http .NewRequest (method , fmt .Sprintf ("%s%s" , addr , pa ), opts .reader )
58- require .NoError (t , err )
59- for key , value := range opts .header {
60- req .Header .Set (key , value )
61+ addr := srv .listener .Addr ().String ()
62+ httpsClient := & http.Client {
63+ Transport : & http.Transport {
64+ TLSClientConfig : & tls.Config {
65+ InsecureSkipVerify : true ,
66+ },
67+ },
68+ }
69+ do := func (scheme string , client * http.Client ) doHTTPFunc {
70+ return func (t * testing.T , method , pa string , opts httpOpts , f func (* testing.T , * http.Response )) {
71+ if pa [0 ] != '/' {
72+ pa = "/" + pa
73+ }
74+ req , err := http .NewRequest (method , fmt .Sprintf ("%s://%s%s" , scheme , addr , pa ), opts .reader )
75+ require .NoError (t , err )
76+ for key , value := range opts .header {
77+ req .Header .Set (key , value )
78+ }
79+ resp , err := client .Do (req )
80+ require .NoError (t , err )
81+ f (t , resp )
82+ require .NoError (t , resp .Body .Close ())
6183 }
62- resp , err := http .DefaultClient .Do (req )
63- require .NoError (t , err )
64- f (t , resp )
65- require .NoError (t , resp .Body .Close ())
6684 }
85+ return srv , do ("http" , http .DefaultClient ), do ("https" , httpsClient )
6786}
6887
6988func TestGrpc (t * testing.T ) {
0 commit comments