@@ -5,39 +5,37 @@ import (
55 "path/filepath"
66 "testing"
77
8- "gopkg.in/ini.v1"
8+ "github.com/stretchr/testify/assert"
9+ utils "github.com/teaglebuilt/gh-subrepo/internal"
910)
1011
11- func TestLoadGitRepoFile (t * testing.T ) {
12+ func TestPullCmd_NoGitRepo (t * testing.T ) {
1213 tmpDir , err := os .MkdirTemp ("" , "test-pull-*" )
13- if err != nil {
14- t .Fatal (err )
15- }
16-
17- subrepoDir := filepath .Join (tmpDir , "subrepo" )
18- os .Mkdir (subrepoDir , 0o755 )
19-
20- gitrepoContent := `[subrepo]
21- remote = https://github.com/example/repo.git
22- branch = main
23- `
24- gitrepoPath := filepath .Join (subrepoDir , ".gitrepo" )
25- if err := os .WriteFile (gitrepoPath , []byte (gitrepoContent ), 0o644 ); err != nil {
26- t .Fatalf ("Failed to write .gitrepo: %v" , err )
27- }
28-
29- cfg , err := ini .Load (gitrepoPath )
30- if err != nil {
31- t .Fatalf ("Failed to load .gitrepo: %v" , err )
32- }
33-
34- remote := cfg .Section ("subrepo" ).Key ("remote" ).String ()
35- if remote != "https://github.com/example/repo.git" {
36- t .Fatalf ("Expected remote URL to match, got %s" , remote )
37- }
38-
39- branch := cfg .Section ("subrepo" ).Key ("branch" ).String ()
40- if branch != "main" {
41- t .Fatalf ("Expected branch to be 'main', got %s" , branch )
42- }
14+ assert .NoError (t , err )
15+ defer os .RemoveAll (tmpDir )
16+
17+ cwd , err := os .Getwd ()
18+ assert .NoError (t , err )
19+ defer os .Chdir (cwd )
20+
21+ assert .NoError (t , os .Chdir (tmpDir ))
22+
23+ _ , err = utils .GitRepoRoot ()
24+ assert .Error (t , err , "Expected error when not in a git repo" )
25+ }
26+
27+ func TestPullCmd_MissingGitrepoFile (t * testing.T ) {
28+ repoRoot , err := os .MkdirTemp ("" , "test-pull-gitrepo-*" )
29+ assert .NoError (t , err )
30+ defer os .RemoveAll (repoRoot )
31+
32+ subdir := "vendor/lib"
33+ assert .NoError (t , os .MkdirAll (filepath .Join (repoRoot , subdir ), 0o755 ))
34+
35+ err = utils .ExecCmd (repoRoot , "git" , "init" , "-b" , "main" )
36+ assert .NoError (t , err )
37+
38+ gitrepoPath := filepath .Join (repoRoot , subdir , ".gitrepo" )
39+ _ , err = os .Stat (gitrepoPath )
40+ assert .True (t , os .IsNotExist (err ), "Expected .gitrepo file not to exist" )
4341}
0 commit comments