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  }