fmt.Sprintf(`{"bucket_name":"%s","event":"already-exists"}`, bucketName),
				))
				Expect(log).To(gbytes.Say(
					fmt.Sprintf(`{"bucket_name":"%s","event":"done"}`, bucketName),
				))
			})
		})

		Context("when the bucket does not exist", func() {
			var (
				bucket    s3.Bucket
				createErr error
			)

			BeforeEach(func() {
				bucketList, err := goamzBucketClient.ListBuckets()
				Expect(err).NotTo(HaveOccurred())
				Expect(bucketList.Buckets).To(HaveLen(0))

				client := s3.NewClient(fakeS3EndpointURL, "accessKey", "secretKey", logger)
				bucket, createErr = client.GetOrCreateBucket(bucketName)
			})

			AfterEach(func() {
				err := goamzBucketClient.DelBucket()
				Expect(err).NotTo(HaveOccurred())
			})

			It("does not return an error", func() {
				Expect(createErr).NotTo(HaveOccurred())
			})