github.com/grahambrereton-form3/tilt@v0.10.18/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/windmilleng/tilt/internal/tiltfile/starkit"
    10  )
    11  
    12  func TestGitRepoPath(t *testing.T) {
    13  	f := NewFixture(t)
    14  	f.UseRealFS()
    15  	f.File("Tiltfile", `
    16  print(local_git_repo('.').paths('.git/index'))
    17  `)
    18  	f.File(".git/index", "HEAD")
    19  
    20  	_, err := f.ExecFile("Tiltfile")
    21  	assert.NoError(t, err)
    22  	assert.Contains(t, f.PrintOutput(), "/.git/index")
    23  }
    24  
    25  func TestGitRepoBadMethodCall(t *testing.T) {
    26  	f := NewFixture(t)
    27  	f.UseRealFS()
    28  	f.File("Tiltfile", `
    29  local_git_repo('.').asdf()
    30  `)
    31  	f.File(".git/index", "HEAD")
    32  
    33  	_, err := f.ExecFile("Tiltfile")
    34  	if assert.Error(t, err) {
    35  		msg := err.(*starlark.EvalError).Backtrace()
    36  		assert.Contains(t, msg, "Tiltfile:2:20: in <toplevel>")
    37  		assert.Contains(t, msg, "Error: git.Repo has no .asdf field or method")
    38  	}
    39  }
    40  
    41  func NewFixture(tb testing.TB) *starkit.Fixture {
    42  	return starkit.NewFixture(tb, NewExtension())
    43  }