github.com/purpleclay/gitz@v0.8.2-0.20240515052600-43f80eea2fe1/status_test.go (about) 1 package git_test 2 3 import ( 4 "testing" 5 6 git "github.com/purpleclay/gitz" 7 "github.com/purpleclay/gitz/gittest" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestPorcelainStatus(t *testing.T) { 13 gittest.InitRepository(t, gittest.WithFiles("README.md"), gittest.WithStagedFiles("go.mod")) 14 15 client, _ := git.NewClient() 16 statuses, err := client.PorcelainStatus() 17 require.NoError(t, err) 18 19 require.Len(t, statuses, 2) 20 assert.ElementsMatch(t, 21 []string{"?? README.md", "A go.mod"}, 22 []string{statuses[0].String(), statuses[1].String()}) 23 } 24 25 func TestClean(t *testing.T) { 26 gittest.InitRepository(t) 27 28 client, _ := git.NewClient() 29 clean, err := client.Clean() 30 require.NoError(t, err) 31 32 assert.True(t, clean) 33 } 34 35 func TestCleanWithStagedChanges(t *testing.T) { 36 gittest.InitRepository(t, gittest.WithStagedFiles("example.txt")) 37 38 client, _ := git.NewClient() 39 clean, err := client.Clean() 40 require.NoError(t, err) 41 42 assert.False(t, clean) 43 }