@@ -33,13 +33,26 @@ import (
3333)
3434
3535var (
36- fr * gateway.File
36+ fr * gateway.File
37+
3738 disabledAuthConfig = & config.Config {
3839 Origins : []string {"https://example.com" },
3940 AuthSrv : config.AuthSrvConfig {
4041 Disabled : true ,
4142 },
4243 }
44+
45+ internalApiConfig = & config.Config {
46+ Origins : []string {"https://example.com" },
47+ AuthSrv : config.AuthSrvConfig {
48+ Disabled : true ,
49+ },
50+ Visualizer : config.VisualizerConfig {
51+ InternalApi : config.InternalApiConfig {
52+ Active : true ,
53+ },
54+ },
55+ }
4356)
4457
4558type Seeder func (ctx context.Context , r * repo.Container , f gateway.File ) error
@@ -109,20 +122,38 @@ func StartGQLServerWithRepos(t *testing.T, cfg *config.Config, repos *repo.Conta
109122 }
110123
111124 ctx := context .Background ()
112- l , err := net .Listen ("tcp" , ":0" )
113- if err != nil {
114- t .Fatalf ("server failed to listen: %v" , err )
115- }
116125
117126 srv , gateways , accountGateway := initServerWithAccountGateway (cfg , repos , ctx )
118127
119128 ch := make (chan error )
120- go func () {
121- if err := srv .Serve (l ); err != http .ErrServerClosed {
122- ch <- err
129+
130+ var l net.Listener
131+ var err error
132+
133+ if cfg .Visualizer .InternalApi .Active {
134+ l , err = net .Listen ("tcp" , ":8080" )
135+ if err != nil {
136+ t .Fatalf ("server failed to listen: %v" , err )
123137 }
124- close (ch )
125- }()
138+ go func () {
139+ if err := srv .ServeGRPC (l ); err != http .ErrServerClosed {
140+ ch <- err
141+ }
142+ close (ch )
143+ }()
144+ } else {
145+ l , err = net .Listen ("tcp" , ":0" )
146+ if err != nil {
147+ t .Fatalf ("server failed to listen: %v" , err )
148+ }
149+ go func () {
150+ if err := srv .Serve (l ); err != http .ErrServerClosed {
151+ ch <- err
152+ }
153+ close (ch )
154+ }()
155+ }
156+
126157 t .Cleanup (func () {
127158 if err := srv .Shutdown (context .Background ()); err != nil {
128159 t .Fatalf ("server shutdown: %v" , err )
@@ -132,6 +163,7 @@ func StartGQLServerWithRepos(t *testing.T, cfg *config.Config, repos *repo.Conta
132163 t .Fatalf ("server serve: %v" , err )
133164 }
134165 })
166+
135167 return httpexpect .Default (t , "http://" + l .Addr ().String ()), gateways , accountGateway
136168}
137169
@@ -151,6 +183,10 @@ func ServerAndRepos(t *testing.T, seeder Seeder) (*httpexpect.Expect, *repo.Cont
151183 return startServer (t , disabledAuthConfig , true , seeder )
152184}
153185
186+ func GRPCServer (t * testing.T , seeder Seeder ) (* httpexpect.Expect , * repo.Container , * gateway.Container ) {
187+ return startServer (t , internalApiConfig , true , seeder )
188+ }
189+
154190func Server (t * testing.T , seeder Seeder ) * httpexpect.Expect {
155191 e , _ , _ := startServer (t , disabledAuthConfig , true , seeder )
156192 return e
0 commit comments