Context("when reading tasks from DB succeeds", func() { var tasks []*models.Task BeforeEach(func() { tasks = []*models.Task{&task1, &task2} fakeTaskDB.TasksReturns(tasks, nil) }) It("returns a list of task", func() { Expect(err).NotTo(HaveOccurred()) Expect(actualTasks).To(Equal(tasks)) }) It("calls the DB with no filter", func() { Expect(fakeTaskDB.TasksCallCount()).To(Equal(1)) _, filter := fakeTaskDB.TasksArgsForCall(0) Expect(filter).To(Equal(models.TaskFilter{})) }) Context("and filtering by domain", func() { BeforeEach(func() { domain = "domain-1" }) It("calls the DB with a domain filter", func() { Expect(fakeTaskDB.TasksCallCount()).To(Equal(1)) _, filter := fakeTaskDB.TasksArgsForCall(0) Expect(filter.Domain).To(Equal(domain)) }) })