github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/tiltfile/git/git_test.go (about)

     1  package git
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"go.starlark.net/starlark"
     8  
     9  	"github.com/tilt-dev/tilt/internal/tiltfile/starkit"
    10  )
    11  
    12  func TestGitRepoPath(t *testing.T) {
    13  	f := NewFixture(t)
    14  
    15  	f.UseRealFS()
    16  	f.File("Tiltfile", `
    17  print(local_git_repo('.').paths('.git/index'))
    18  `)
    19  	f.File(".git/index", "HEAD")
    20  
    21  	_, err := f.ExecFile("Tiltfile")
    22  	assert.NoError(t, err)
    23  	assert.Contains(t, f.PrintOutput(), f.JoinPath(".git", "index"))
    24  }
    25  
    26  func TestGitRepoBadMethodCall(t *testing.T) {
    27  	f := NewFixture(t)
    28  
    29  	f.UseRealFS()
    30  	f.File("Tiltfile", `
    31  local_git_repo('.').asdf()
    32  `)
    33  	f.File(".git/index", "HEAD")
    34  
    35  	_, err := f.ExecFile("Tiltfile")
    36  	if assert.Error(t, err) {
    37  		msg := err.(*starlark.EvalError).Backtrace()
    38  		assert.Contains(t, msg, "Tiltfile:2:20: in <toplevel>")
    39  		assert.Contains(t, msg, "Error: git.Repo has no .asdf field or method")
    40  	}
    41  }
    42  
    43  func NewFixture(tb testing.TB) *starkit.Fixture {
    44  	return starkit.NewFixture(tb, NewPlugin())
    45  }