8
8
package main
9
9
10
10
import (
11
- "context"
12
11
"embed"
13
12
"io/ioutil"
14
13
"net/http"
@@ -17,12 +16,8 @@ import (
17
16
"strings"
18
17
"testing"
19
18
20
- "cloud.google.com/go/pubsub"
21
- "cloud.google.com/go/pubsub/pstest"
22
19
reluipb "golang.org/x/build/cmd/relui/protos"
23
20
"golang.org/x/build/internal/datastore/fake"
24
- "google.golang.org/api/option"
25
- "google.golang.org/grpc"
26
21
)
27
22
28
23
// testStatic is our static web server content.
@@ -182,41 +177,8 @@ func TestServerCreateWorkflowHandler(t *testing.T) {
182
177
}
183
178
}
184
179
185
- // newPSTest creates a new pstest.Server and returns a pubsub.Client connected to it and the server.
186
- //
187
- // cleanup will close the client, connection, and test server.
188
- func newPSTest (ctx context.Context , t * testing.T ) (c * pubsub.Client , s * pstest.Server , cleanup func ()) {
189
- t .Helper ()
190
- s = pstest .NewServer ()
191
- conn , err := grpc .DialContext (ctx , s .Addr , grpc .WithInsecure ())
192
- if err != nil {
193
- s .Close ()
194
- t .Fatalf ("grpc.DialContext(_, %q, %v) = _, %v, wanted no error" , s .Addr , grpc .WithInsecure (), err )
195
- }
196
- c , err = pubsub .NewClient (ctx , "relui-test" , option .WithGRPCConn (conn ))
197
- if err != nil {
198
- s .Close ()
199
- conn .Close ()
200
- t .Fatalf ("pubsub.NewClient(_, %q, %v) = _, %v, wanted no error" , "relui-test" , option .WithGRPCConn (conn ), err )
201
- }
202
- return c , s , func () {
203
- c .Close ()
204
- conn .Close ()
205
- s .Close ()
206
- }
207
- }
208
-
209
180
func TestServerStartTaskHandler (t * testing.T ) {
210
- ctx , cancel := context .WithCancel (context .Background ())
211
- defer cancel ()
212
- client , pssrv , cleanup := newPSTest (ctx , t )
213
- defer cleanup ()
214
- topic , err := client .CreateTopic (ctx , "relui-test-topic" )
215
- if err != nil {
216
- t .Fatalf ("client.CreateTopic(_, %q) = _, %v" , "relui-test-topic" , err )
217
- }
218
-
219
- s := server {store : & dsStore {client : & fake.Client {}}, topic : topic }
181
+ s := server {store : & dsStore {client : & fake.Client {}}}
220
182
wf := & reluipb.Workflow {
221
183
Id : "someworkflow" ,
222
184
Name : "test_workflow" ,
@@ -226,14 +188,9 @@ func TestServerStartTaskHandler(t *testing.T) {
226
188
Id : "sometask" ,
227
189
}},
228
190
}
229
- if s .store .AddWorkflow (wf ) != nil {
191
+ if err := s .store .AddWorkflow (wf ); err != nil {
230
192
t .Fatalf ("store.AddWorkflow(%v) = %v, wanted no error" , wf , err )
231
193
}
232
- want := & reluipb.StartBuildableTaskRequest {
233
- WorkflowId : "someworkflow" ,
234
- BuildableTaskId : "sometask" ,
235
- BuildableTaskType : "TestTask" ,
236
- }
237
194
params := url.Values {"workflow.id" : []string {"someworkflow" }, "task.id" : []string {"sometask" }}
238
195
req := httptest .NewRequest (http .MethodPost , "/tasks/start" , strings .NewReader (params .Encode ()))
239
196
req .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
@@ -248,13 +205,6 @@ func TestServerStartTaskHandler(t *testing.T) {
248
205
if resp .Header .Get ("Location" ) != "/" {
249
206
t .Errorf ("resp.Header.Get(%q) = %q, wanted %q" , "Location" , resp .Header .Get ("Location" ), "/" )
250
207
}
251
- if len (pssrv .Messages ()) != 1 {
252
- t .Fatalf ("len(pssrv.Messages()) = %d, wanted %d" , len (pssrv .Messages ()), 1 )
253
- }
254
- msg := pssrv .Messages ()[0 ]
255
- if string (msg .Data ) != want .String () {
256
- t .Errorf ("msg.Data = %q, wanted %q" , string (msg .Data ), "hello world" )
257
- }
258
208
}
259
209
260
210
func TestStartTaskHandlerErrors (t * testing.T ) {
@@ -278,27 +228,11 @@ func TestStartTaskHandlerErrors(t *testing.T) {
278
228
params : url.Values {"workflow.id" : []string {"someworkflow" }, "task.id" : []string {"notexist" }},
279
229
wantCode : http .StatusNotFound ,
280
230
},
281
- {
282
- desc : "pubsub publish failure" ,
283
- params : url.Values {"workflow.id" : []string {"someworkflow" }, "task.id" : []string {"sometask" }},
284
- wantCode : http .StatusInternalServerError ,
285
- },
286
231
}
287
232
for _ , c := range cases {
288
233
t .Run (c .desc , func (t * testing.T ) {
289
- ctx , cancel := context .WithCancel (context .Background ())
290
- defer cancel ()
291
- client , pssrv , cleanup := newPSTest (ctx , t )
292
- defer cleanup ()
293
- topic , err := client .CreateTopic (ctx , "relui-test-topic" )
294
- if err != nil {
295
- t .Fatalf ("client.CreateTopic(_, %q) = _, %v" , "relui-test-topic" , err )
296
- }
297
- // Simulate pubsub failure by stopping publishing.
298
- topic .Stop ()
299
-
300
- s := server {store : & dsStore {client : & fake.Client {}}, topic : topic }
301
- if s .store .AddWorkflow (wf ) != nil {
234
+ s := server {store : & dsStore {client : & fake.Client {}}}
235
+ if err := s .store .AddWorkflow (wf ); err != nil {
302
236
t .Fatalf ("store.AddWorkflow(%v) = %v, wanted no error" , wf , err )
303
237
}
304
238
req := httptest .NewRequest (http .MethodPost , "/tasks/start" , strings .NewReader (c .params .Encode ()))
@@ -311,9 +245,6 @@ func TestStartTaskHandlerErrors(t *testing.T) {
311
245
if resp .StatusCode != c .wantCode {
312
246
t .Errorf ("resp.StatusCode = %d, wanted %d" , resp .StatusCode , c .wantCode )
313
247
}
314
- if len (pssrv .Messages ()) != 0 {
315
- t .Fatalf ("len(pssrv.Messages()) = %d, wanted %d" , len (pssrv .Messages ()), 0 )
316
- }
317
248
})
318
249
}
319
250
}
0 commit comments