github.com/discordapp/buildkite-agent@v2.6.6+incompatible/agent/artifact_uploader_test.go (about) 1 package agent 2 3 import ( 4 "fmt" 5 "os" 6 "path" 7 "path/filepath" 8 "testing" 9 10 "github.com/buildkite/agent/api" 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func findArtifact(artifacts []*api.Artifact, search string) *api.Artifact { 15 for _, a := range artifacts { 16 if path.Base(a.Path) == search { 17 return a 18 } 19 } 20 21 return nil 22 } 23 24 func TestCollect(t *testing.T) { 25 wd, _ := os.Getwd() 26 root := filepath.Join(wd, "..") 27 os.Chdir(root) 28 29 paths := fmt.Sprintf("%s;%s", filepath.Join("test", "fixtures", "artifacts", "**/*.jpg"), filepath.Join(root, "test", "fixtures", "artifacts", "**/*.gif")) 30 uploader := ArtifactUploader{Paths: paths} 31 32 artifacts, err := uploader.Collect() 33 34 assert.Nil(t, err) 35 assert.Equal(t, len(artifacts), 4) 36 37 var a *api.Artifact 38 39 a = findArtifact(artifacts, "Mr Freeze.jpg") 40 assert.NotNil(t, a) 41 assert.Equal(t, a.Path, "test/fixtures/artifacts/Mr Freeze.jpg") 42 assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/Mr Freeze.jpg")) 43 assert.Equal(t, a.GlobPath, "test/fixtures/artifacts/**/*.jpg") 44 assert.Equal(t, int(a.FileSize), 362371) 45 assert.Equal(t, a.Sha1Sum, "f5bc7bc9f5f9c3e543dde0eb44876c6f9acbfb6b") 46 47 a = findArtifact(artifacts, "Commando.jpg") 48 assert.NotNil(t, a) 49 assert.Equal(t, a.Path, "test/fixtures/artifacts/folder/Commando.jpg") 50 assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/folder/Commando.jpg")) 51 assert.Equal(t, a.GlobPath, "test/fixtures/artifacts/**/*.jpg") 52 assert.Equal(t, int(a.FileSize), 113000) 53 assert.Equal(t, a.Sha1Sum, "811d7cb0317582e22ebfeb929d601cdabea4b3c0") 54 55 a = findArtifact(artifacts, "The Terminator.jpg") 56 assert.NotNil(t, a) 57 assert.Equal(t, a.Path, "test/fixtures/artifacts/this is a folder with a space/The Terminator.jpg") 58 assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/this is a folder with a space/The Terminator.jpg")) 59 assert.Equal(t, a.GlobPath, "test/fixtures/artifacts/**/*.jpg") 60 assert.Equal(t, int(a.FileSize), 47301) 61 assert.Equal(t, a.Sha1Sum, "ed76566ede9cb6edc975fcadca429665aad8785a") 62 63 // Need to trim the first charcater because it's path doesn't contain 64 // the root, which in this case is / 65 a = findArtifact(artifacts, "Smile.gif") 66 assert.NotNil(t, a) 67 gifPath := filepath.Join(root, "test/fixtures/artifacts/gifs/Smile.gif") 68 assert.Equal(t, a.Path, gifPath[1:]) 69 assert.Equal(t, a.AbsolutePath, filepath.Join(root, "test/fixtures/artifacts/gifs/Smile.gif")) 70 assert.Equal(t, a.GlobPath, filepath.Join(root, "test/fixtures/artifacts/**/*.gif")) 71 assert.Equal(t, int(a.FileSize), 2038453) 72 assert.Equal(t, a.Sha1Sum, "bd4caf2e01e59777744ac1d52deafa01c2cb9bfd") 73 }