44package git
55
66import (
7+ "context"
8+ "os"
79 "path/filepath"
810 "testing"
911
1012 "github.com/stretchr/testify/assert"
1113 "github.com/stretchr/testify/require"
1214)
1315
14- func TestRepository_GetSubmoduleCommits (t * testing.T ) {
16+ func TestGetTemplateSubmoduleCommits (t * testing.T ) {
1517 testRepoPath := filepath .Join (testReposDir , "repo4_submodules" )
1618 submodules , err := GetTemplateSubmoduleCommits (DefaultContext , testRepoPath )
1719 require .NoError (t , err )
@@ -24,3 +26,23 @@ func TestRepository_GetSubmoduleCommits(t *testing.T) {
2426 assert .EqualValues (t , "libtest" , submodules [1 ].Path )
2527 assert .EqualValues (t , "1234567890123456789012345678901234567890" , submodules [1 ].Commit )
2628}
29+
30+ func TestAddTemplateSubmoduleIndexes (t * testing.T ) {
31+ ctx := context .Background ()
32+ tmpDir := t .TempDir ()
33+ var err error
34+ _ , _ , err = NewCommand (ctx , "init" ).RunStdString (& RunOpts {Dir : tmpDir })
35+ require .NoError (t , err )
36+ _ = os .Mkdir (filepath .Join (tmpDir , "new-dir" ), 0755 )
37+ err = AddTemplateSubmoduleIndexes (ctx , tmpDir , []TemplateSubmoduleCommit {{Path : "new-dir" , Commit : "1234567890123456789012345678901234567890" }})
38+ require .NoError (t , err )
39+ _ , _ , err = NewCommand (ctx , "add" , "--all" ).RunStdString (& RunOpts {Dir : tmpDir })
40+ require .NoError (t , err )
41+ _ , _ , err = NewCommand (ctx , "-c" , "user.name=a" , "-c" , "user.email=b" , "commit" , "-m=test" ).RunStdString (& RunOpts {Dir : tmpDir })
42+ require .NoError (t , err )
43+ submodules , err := GetTemplateSubmoduleCommits (DefaultContext , tmpDir )
44+ require .NoError (t , err )
45+ assert .Len (t , submodules , 1 )
46+ assert .EqualValues (t , "new-dir" , submodules [0 ].Path )
47+ assert .EqualValues (t , "1234567890123456789012345678901234567890" , submodules [0 ].Commit )
48+ }
0 commit comments