Skip to content

Commit ee93c36

Browse files
committed
test api with prefix for #73
seems to work all fine
1 parent 68ee3ed commit ee93c36

File tree

1 file changed

+27
-41
lines changed

1 file changed

+27
-41
lines changed

api_test.go

Lines changed: 27 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,12 @@ var _ = Describe("RestHandler", func() {
264264
"author": map[string]interface{}{
265265
"id": "1",
266266
"type": "users",
267-
"resource": "/posts/1/author",
267+
"resource": "/v1/posts/1/author",
268268
},
269269
"comments": map[string]interface{}{
270270
"ids": []interface{}{"1"},
271271
"type": "comments",
272-
"resource": "/posts/1/comments",
272+
"resource": "/v1/posts/1/comments",
273273
},
274274
},
275275
}
@@ -295,12 +295,12 @@ var _ = Describe("RestHandler", func() {
295295
"links": map[string]interface{}{
296296
"author": map[string]interface{}{
297297
"type": "users",
298-
"resource": "/posts/2/author",
298+
"resource": "/v1/posts/2/author",
299299
},
300300
"comments": map[string]interface{}{
301301
"ids": []interface{}{},
302302
"type": "comments",
303-
"resource": "/posts/2/comments",
303+
"resource": "/v1/posts/2/comments",
304304
},
305305
},
306306
}
@@ -313,17 +313,17 @@ var _ = Describe("RestHandler", func() {
313313
"links": map[string]interface{}{
314314
"author": map[string]interface{}{
315315
"type": "users",
316-
"resource": "/posts/3/author",
316+
"resource": "/v1/posts/3/author",
317317
},
318318
"comments": map[string]interface{}{
319319
"ids": []interface{}{},
320320
"type": "comments",
321-
"resource": "/posts/3/comments",
321+
"resource": "/v1/posts/3/comments",
322322
},
323323
},
324324
}
325325

326-
api = NewAPI("")
326+
api = NewAPI("v1")
327327
api.AddResource(Post{}, source)
328328
api.AddResource(User{}, &userSource{})
329329
api.AddResource(Comment{}, &commentSource{})
@@ -332,7 +332,7 @@ var _ = Describe("RestHandler", func() {
332332
})
333333

334334
It("GETs collections", func() {
335-
req, err := http.NewRequest("GET", "/posts", nil)
335+
req, err := http.NewRequest("GET", "/v1/posts", nil)
336336
Expect(err).To(BeNil())
337337
api.Handler().ServeHTTP(rec, req)
338338
Expect(rec.Code).To(Equal(http.StatusOK))
@@ -345,7 +345,7 @@ var _ = Describe("RestHandler", func() {
345345
})
346346

347347
It("GETs single objects", func() {
348-
req, err := http.NewRequest("GET", "/posts/1", nil)
348+
req, err := http.NewRequest("GET", "/v1/posts/1", nil)
349349
Expect(err).To(BeNil())
350350
api.Handler().ServeHTTP(rec, req)
351351
Expect(rec.Code).To(Equal(http.StatusOK))
@@ -358,7 +358,7 @@ var _ = Describe("RestHandler", func() {
358358
})
359359

360360
It("GETs multiple objects", func() {
361-
req, err := http.NewRequest("GET", "/posts/1,2", nil)
361+
req, err := http.NewRequest("GET", "/v1/posts/1,2", nil)
362362
Expect(err).To(BeNil())
363363
api.Handler().ServeHTTP(rec, req)
364364
Expect(rec.Code).To(Equal(http.StatusOK))
@@ -371,31 +371,31 @@ var _ = Describe("RestHandler", func() {
371371
})
372372

373373
It("GETs related struct from resource url", func() {
374-
req, err := http.NewRequest("GET", "/posts/1/author", nil)
374+
req, err := http.NewRequest("GET", "/v1/posts/1/author", nil)
375375
Expect(err).ToNot(HaveOccurred())
376376
api.Handler().ServeHTTP(rec, req)
377377
Expect(rec.Code).To(Equal(http.StatusOK))
378378
Expect(rec.Body.Bytes()).To(MatchJSON(`{"data": {"id": "1", "name": "Dieter", "type": "users"}}`))
379379
})
380380

381381
It("GETs related structs from resource url", func() {
382-
req, err := http.NewRequest("GET", "/posts/1/comments", nil)
382+
req, err := http.NewRequest("GET", "/v1/posts/1/comments", nil)
383383
Expect(err).ToNot(HaveOccurred())
384384
api.Handler().ServeHTTP(rec, req)
385385
Expect(rec.Code).To(Equal(http.StatusOK))
386386
Expect(rec.Body.Bytes()).To(MatchJSON(`{"data": [{"id": "1", "value": "This is a stupid post!", "type": "comments"}]}`))
387387
})
388388

389389
It("Gets 404 if a related struct was not found", func() {
390-
req, err := http.NewRequest("GET", "/posts/1/unicorns", nil)
390+
req, err := http.NewRequest("GET", "/v1/posts/1/unicorns", nil)
391391
Expect(err).ToNot(HaveOccurred())
392392
api.Handler().ServeHTTP(rec, req)
393393
Expect(rec.Code).To(Equal(http.StatusNotFound))
394394
Expect(rec.Body.Bytes()).ToNot(BeEmpty())
395395
})
396396

397397
It("404s", func() {
398-
req, err := http.NewRequest("GET", "/posts/23", nil)
398+
req, err := http.NewRequest("GET", "/v1/posts/23", nil)
399399
Expect(err).To(BeNil())
400400
api.Handler().ServeHTTP(rec, req)
401401
Expect(rec.Code).To(Equal(http.StatusNotFound))
@@ -405,11 +405,11 @@ var _ = Describe("RestHandler", func() {
405405

406406
It("POSTSs new objects", func() {
407407
reqBody := strings.NewReader(`{"posts": [{"title": "New Post"}]}`)
408-
req, err := http.NewRequest("POST", "/posts", reqBody)
408+
req, err := http.NewRequest("POST", "/v1/posts", reqBody)
409409
Expect(err).To(BeNil())
410410
api.Handler().ServeHTTP(rec, req)
411411
Expect(rec.Code).To(Equal(http.StatusCreated))
412-
Expect(rec.Header().Get("Location")).To(Equal("/posts/4"))
412+
Expect(rec.Header().Get("Location")).To(Equal("/v1/posts/4"))
413413
var result map[string]interface{}
414414
Expect(json.Unmarshal(rec.Body.Bytes(), &result)).To(BeNil())
415415
Expect(result).To(Equal(map[string]interface{}{
@@ -421,12 +421,12 @@ var _ = Describe("RestHandler", func() {
421421
"links": map[string]interface{}{
422422
"author": map[string]interface{}{
423423
"type": "users",
424-
"resource": "/posts/4/author",
424+
"resource": "/v1/posts/4/author",
425425
},
426426
"comments": map[string]interface{}{
427427
"ids": []interface{}{},
428428
"type": "comments",
429-
"resource": "/posts/4/comments",
429+
"resource": "/v1/posts/4/comments",
430430
},
431431
},
432432
},
@@ -435,7 +435,7 @@ var _ = Describe("RestHandler", func() {
435435

436436
It("POSTSs new objects with trailing slash automatic redirect enabled", func() {
437437
reqBody := strings.NewReader(`{"posts": [{"title": "New Post"}]}`)
438-
req, err := http.NewRequest("POST", "/posts/", reqBody)
438+
req, err := http.NewRequest("POST", "/v1/posts/", reqBody)
439439
Expect(err).To(BeNil())
440440
api.SetRedirectTrailingSlash(true)
441441
api.Handler().ServeHTTP(rec, req)
@@ -444,7 +444,7 @@ var _ = Describe("RestHandler", func() {
444444

445445
It("POSTSs new objects with trailing slash automatic redirect disabled", func() {
446446
reqBody := strings.NewReader(`{"posts": [{"title": "New Post"}]}`)
447-
req, err := http.NewRequest("POST", "/posts/", reqBody)
447+
req, err := http.NewRequest("POST", "/v1/posts/", reqBody)
448448
Expect(err).To(BeNil())
449449
api.SetRedirectTrailingSlash(false)
450450
api.Handler().ServeHTTP(rec, req)
@@ -453,7 +453,7 @@ var _ = Describe("RestHandler", func() {
453453

454454
It("POSTSs multiple objects", func() {
455455
reqBody := strings.NewReader(`{"posts": [{"title": "New Post"}, {"title" : "Second New Post"}]}`)
456-
req, err := http.NewRequest("POST", "/posts", reqBody)
456+
req, err := http.NewRequest("POST", "/v1/posts", reqBody)
457457
Expect(err).To(BeNil())
458458
api.Handler().ServeHTTP(rec, req)
459459
Expect(rec.Code).To(Equal(http.StatusInternalServerError))
@@ -463,7 +463,7 @@ var _ = Describe("RestHandler", func() {
463463

464464
It("PUTSs multiple objects", func() {
465465
reqBody := strings.NewReader(`{"posts": [{"title": "New Post"}, {"title" : "Second New Post"}]}`)
466-
req, err := http.NewRequest("PUT", "/posts/1", reqBody)
466+
req, err := http.NewRequest("PUT", "/v1/posts/1", reqBody)
467467
Expect(err).To(BeNil())
468468
api.Handler().ServeHTTP(rec, req)
469469
Expect(rec.Code).To(Equal(http.StatusInternalServerError))
@@ -472,23 +472,23 @@ var _ = Describe("RestHandler", func() {
472472
})
473473

474474
It("OPTIONS on collection route", func() {
475-
req, err := http.NewRequest("OPTIONS", "/posts", nil)
475+
req, err := http.NewRequest("OPTIONS", "/v1/posts", nil)
476476
api.Handler().ServeHTTP(rec, req)
477477
Expect(err).To(BeNil())
478478
Expect(rec.Code).To(Equal(http.StatusNoContent))
479479
Expect(rec.Header().Get("Allow")).To(Equal("GET,POST,OPTIONS"))
480480
})
481481

482482
It("OPTIONS on element route", func() {
483-
req, err := http.NewRequest("OPTIONS", "/posts/1", nil)
483+
req, err := http.NewRequest("OPTIONS", "/v1/posts/1", nil)
484484
api.Handler().ServeHTTP(rec, req)
485485
Expect(err).To(BeNil())
486486
Expect(rec.Code).To(Equal(http.StatusNoContent))
487487
Expect(rec.Header().Get("Allow")).To(Equal("GET,PUT,DELETE,OPTIONS"))
488488
})
489489

490490
It("DELETEs", func() {
491-
req, err := http.NewRequest("DELETE", "/posts/1", nil)
491+
req, err := http.NewRequest("DELETE", "/v1/posts/1", nil)
492492
Expect(err).To(BeNil())
493493
api.Handler().ServeHTTP(rec, req)
494494
Expect(rec.Code).To(Equal(http.StatusNoContent))
@@ -497,7 +497,7 @@ var _ = Describe("RestHandler", func() {
497497

498498
It("UPDATEs", func() {
499499
reqBody := strings.NewReader(`{"posts": {"id": "1", "title": "New Title"}}`)
500-
req, err := http.NewRequest("PUT", "/posts/1", reqBody)
500+
req, err := http.NewRequest("PUT", "/v1/posts/1", reqBody)
501501
Expect(err).To(BeNil())
502502
api.Handler().ServeHTTP(rec, req)
503503
Expect(rec.Code).To(Equal(http.StatusNoContent))
@@ -506,7 +506,7 @@ var _ = Describe("RestHandler", func() {
506506

507507
It("UPDATEs as array", func() {
508508
reqBody := strings.NewReader(`{"posts": [{"id": "1", "title": "New Title"}]}`)
509-
req, err := http.NewRequest("PUT", "/posts/1", reqBody)
509+
req, err := http.NewRequest("PUT", "/v1/posts/1", reqBody)
510510
Expect(err).To(BeNil())
511511
api.Handler().ServeHTTP(rec, req)
512512
Expect(rec.Code).To(Equal(http.StatusNoContent))
@@ -581,20 +581,6 @@ var _ = Describe("RestHandler", func() {
581581
})
582582
})
583583

584-
Context("when prefixing routes", func() {
585-
It("has correct Location when creating", func() {
586-
api := NewAPI("v1")
587-
api.AddResource(Post{}, &fixtureSource{map[string]*Post{}})
588-
rec := httptest.NewRecorder()
589-
reqBody := strings.NewReader(`{"posts": [{"title": "New Post"}]}`)
590-
req, err := http.NewRequest("POST", "/v1/posts", reqBody)
591-
Expect(err).To(BeNil())
592-
api.Handler().ServeHTTP(rec, req)
593-
Expect(rec.Code).To(Equal(http.StatusCreated))
594-
Expect(rec.Header().Get("Location")).To(Equal("/v1/posts/1"))
595-
})
596-
})
597-
598584
Context("marshal errors correctly", func() {
599585
var (
600586
source *fixtureSource

0 commit comments

Comments
 (0)