}) Context("when creating the namespace fails", func() { BeforeEach(func() { namespaceRepo.CreateReturns(nil, errors.New("watermelon")) }) It("returns a meaningful error", func() { _, err := sandboxRepo.Create("some-sandbox-name") Expect(err).To(MatchError("create namespace: watermelon")) }) }) Context("when setup fails", func() { BeforeEach(func() { fakeSandbox.SetupReturns(errors.New("dingleberry")) }) It("returns a meaningful error", func() { _, err := sandboxRepo.Create("some-sandbox-name") Expect(err).To(MatchError("setup sandbox: dingleberry")) }) }) }) Describe("Get", func() { It("locks and unlocks", func() { sandboxRepo.Get("some-other-sandbox-name") Expect(locker.LockCallCount()).To(Equal(1)) Expect(locker.UnlockCallCount()).To(Equal(1)) })