mirror of
https://github.com/go-task/task.git
synced 2026-07-09 20:09:14 +02:00
test: self-manage .git in gitignore fixture tests
The use_gitignore filtering resolves a repo root by walking up to a .git entry. An in-tree checkout inherits go-task's own .git, but a GitHub source tarball (common for distro packaging) has none, which silently disabled filtering and broke the golden fixtures. Have the gitignore integration tests create and clean up their own .git marker in the fixture dir so they validate real behavior regardless of the build source.
This commit is contained in:
@@ -681,6 +681,12 @@ type gitignoreSeq struct {
|
||||
func (s gitignoreSeq) run(t *testing.T) {
|
||||
t.Helper()
|
||||
cleanup := func() {
|
||||
// The fixture manages its own .git marker so that gitignore filtering
|
||||
// resolves a repo root regardless of the build source: an in-tree
|
||||
// checkout would otherwise inherit the go-task .git, but a GitHub
|
||||
// source tarball has none, which would silently disable filtering and
|
||||
// break the golden fixtures.
|
||||
_ = os.RemoveAll(filepathext.SmartJoin(s.dir, ".git"))
|
||||
_ = os.RemoveAll(filepathext.SmartJoin(s.dir, ".task"))
|
||||
for name := range s.create {
|
||||
_ = os.Remove(filepathext.SmartJoin(s.dir, name))
|
||||
@@ -694,6 +700,7 @@ func (s gitignoreSeq) run(t *testing.T) {
|
||||
}
|
||||
cleanup()
|
||||
t.Cleanup(cleanup)
|
||||
require.NoError(t, os.MkdirAll(filepathext.SmartJoin(s.dir, ".git"), 0o755))
|
||||
for name, content := range s.create {
|
||||
writeFile(t, s.dir, name, content)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user