11package fetcher_test
22
33import (
4+ "fmt"
5+ "github.com/onsi/gomega/gbytes"
46 "io/ioutil"
57 "log"
68 "os"
@@ -24,6 +26,7 @@ var _ = Describe("LocalReleaseDirectory", func() {
2426 releasesDir string
2527 releaseFile string
2628 fakeLogger * log.Logger
29+ logBuf * gbytes.Buffer
2730 )
2831
2932 BeforeEach (func () {
@@ -34,7 +37,9 @@ var _ = Describe("LocalReleaseDirectory", func() {
3437
3538 releaseFile = filepath .Join (releasesDir , "some-release.tgz" )
3639
37- fakeLogger = log .New (GinkgoWriter , "" , 0 )
40+ logBuf = gbytes .NewBuffer ()
41+ fakeLogger = log .New (logBuf , "" , 0 )
42+
3843 releaseManifestReader := builder .NewReleaseManifestReader (osfs .New ("" ))
3944 releasesService := baking .NewReleasesService (fakeLogger , releaseManifestReader )
4045
@@ -86,11 +91,15 @@ var _ = Describe("LocalReleaseDirectory", func() {
8691 })
8792
8893 Describe ("DeleteExtraReleases" , func () {
89- var extraFilePath string
94+ var extraFilePath , zFilePath string
9095 BeforeEach (func () {
9196 extraFilePath = filepath .Join (releasesDir , "extra-release-0.0-os-0-0.0.0.tgz" )
9297 err := ioutil .WriteFile (extraFilePath , []byte ("abc" ), 0644 )
9398 Expect (err ).NotTo (HaveOccurred ())
99+
100+ zFilePath = filepath .Join (releasesDir , "z-release-0.0-os-0-0.0.0.tgz" )
101+ err = ioutil .WriteFile (zFilePath , []byte ("xyz" ), 0644 )
102+ Expect (err ).NotTo (HaveOccurred ())
94103 })
95104
96105 It ("deletes specified files" , func () {
@@ -104,6 +113,21 @@ var _ = Describe("LocalReleaseDirectory", func() {
104113 Expect (os .IsNotExist (err )).To (BeTrue ())
105114 })
106115
116+ It ("sorts the list of releases to be deleted" , func () {
117+ extraReleaseID := release.ID {Name : "extra-release" , Version : "0.0" }
118+ extraRelease := release.Local {ID : extraReleaseID , LocalPath : extraFilePath }
119+
120+ zReleaseID := release.ID {Name : "z-release" , Version : "0.0" }
121+ zRelease := release.Local {ID : zReleaseID , LocalPath : zFilePath }
122+
123+ result := fmt .Sprintf ("- %s\n - %s" , extraFilePath , zFilePath )
124+
125+ err := localReleaseDirectory .DeleteExtraReleases ([]release.Local {zRelease , extraRelease }, false )
126+ Expect (err ).NotTo (HaveOccurred ())
127+ Expect (string (logBuf .Contents ())).To (ContainSubstring (result ))
128+
129+ })
130+
107131 Context ("when a file cannot be removed" , func () {
108132 It ("returns an error" , func () {
109133 extraReleaseID := release.ID {Name : "extra-release-that-cannot-be-deleted" , Version : "0.0" }
0 commit comments