Context("when no parliamentarians exist", func() { It("returns a status code of 200", func() { r.ServeHTTP(recorder, request) Expect(recorder.Code).To(Equal(200)) }) It("returns a empty body", func() { r.ServeHTTP(recorder, request) Expect(recorder.Body.String()).To(Equal("{\"parliamentarians\":[]}\n")) }) }) Context("when parliamentarians exist", func() { BeforeEach(func() { databaseDB.Create(models.Parliamentarian{Name: "Jose"}) databaseDB.Create(models.Parliamentarian{Name: "Joao"}) }) It("returns a status code of 200", func() { r.ServeHTTP(recorder, request) Expect(recorder.Code).To(Equal(200)) }) It("returns those parliamentarians in the body", func() { r.ServeHTTP(recorder, request) parliamentariansJSON := mapFromJSON(recorder.Body.Bytes())["parliamentarians"].([]interface{}) Expect(len(parliamentariansJSON)).To(Equal(2)) parliamentarianJSON := parliamentariansJSON[0].(map[string]interface{})