_, err := command.Run(sourceDir, request) Ω(err).Should(HaveOccurred()) }) }) Describe("uploading the file", func() { It("uploads the file", func() { request.Params.From = "a/(.*).tgz" request.Params.To = "a-folder/" createFile("a/file.tgz") _, err := command.Run(sourceDir, request) Ω(err).ShouldNot(HaveOccurred()) Ω(s3client.UploadFileCallCount()).Should(Equal(1)) bucketName, remotePath, localPath := s3client.UploadFileArgsForCall(0) Ω(bucketName).Should(Equal("bucket-name")) Ω(remotePath).Should(Equal("a-folder/file.tgz")) Ω(localPath).Should(Equal(filepath.Join(sourceDir, "a/file.tgz"))) }) It("can handle empty to to put it in the root", func() { request.Params.From = "a/(.*).tgz" request.Params.To = "" createFile("a/file.tgz") _, err := command.Run(sourceDir, request) Ω(err).ShouldNot(HaveOccurred()) Ω(s3client.UploadFileCallCount()).Should(Equal(1))
createFile("a/file1.tgz") createFile("a/file2.tgz") _, err := command.Run(sourceDir, request) Ω(err).Should(HaveOccurred()) }) It("defaults the ACL to 'private'", func() { request.Params.File = "a/*.tgz" createFile("a/file.tgz") _, err := command.Run(sourceDir, request) Ω(err).ShouldNot(HaveOccurred()) Ω(s3client.UploadFileCallCount()).Should(Equal(1)) bucketName, remotePath, localPath, options := s3client.UploadFileArgsForCall(0) Ω(bucketName).Should(Equal("bucket-name")) Ω(remotePath).Should(Equal("file.tgz")) Ω(localPath).Should(Equal(filepath.Join(sourceDir, "a/file.tgz"))) Ω(options).Should(Equal(s3resource.UploadFileOptions{Acl: "private"})) }) }) Context("when specifying an ACL for the uploaded file", func() { BeforeEach(func() { request.Params.File = "a/*.tgz" request.Params.Acl = "public-read" createFile("a/file.tgz") })