_, 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())