github.com/ivotron/vio@v0.1.1-0.20160328072646-778e014d4dee/vcs_test.go (about) 1 package vio 2 3 import ( 4 "io/ioutil" 5 "regexp" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestVCSHasUncommittedChanges(t *testing.T) { 12 path, err := ioutil.TempDir("", "testing") 13 assert.Nil(t, err) 14 15 err = ioutil.WriteFile(path+"/bar", []byte(""), 0644) 16 assert.Nil(t, err) 17 18 createAndSeedTestRepo(t, path, []string{"bar"}) 19 20 has, err := HasUncommittedChanges(path) 21 assert.Nil(t, err) 22 assert.False(t, has) 23 24 // unversioned files shouldn't be considered 25 err = ioutil.WriteFile(path+"/untracked", []byte("changed"), 0644) 26 assert.Nil(t, err) 27 28 has, err = HasUncommittedChanges(path) 29 assert.Nil(t, err) 30 assert.False(t, has) 31 32 // only changes to committed files should be considered 33 err = ioutil.WriteFile(path+"/bar", []byte("changed"), 0644) 34 assert.Nil(t, err) 35 36 has, err = HasUncommittedChanges(path) 37 assert.Nil(t, err) 38 assert.True(t, has) 39 } 40 41 func TestGetCurrentCommitId(t *testing.T) { 42 path, err := ioutil.TempDir("", "testing") 43 assert.Nil(t, err) 44 45 createAndSeedTestRepo(t, path, []string{}) 46 47 id, err := GetCurrentCommitId(path) 48 assert.Nil(t, err) 49 assert.Equal(t, len(id), 7) 50 r, err := regexp.Compile(`[0123456789abcdef]+`) 51 assert.Nil(t, err) 52 assert.True(t, r.MatchString(id)) 53 } 54 55 func TestGetVersionedFiles(t *testing.T) { 56 path, err := ioutil.TempDir("", "testing") 57 assert.Nil(t, err) 58 59 createAndSeedTestRepo(t, path, []string{}) 60 61 files, err := GetVersionedFiles(path) 62 assert.Nil(t, err) 63 assert.Equal(t, len(files), 2) 64 }