@@ -59,7 +59,7 @@ var cmdEnv = []string{
5959 "GIT_COMMITTER_DATE=1600000000 +0000" ,
6060}
6161
62- func cmd (t * testing.T , dir , name string , args ... string ) {
62+ func cmd (t * testing.T , dir , name string , args ... string ) string {
6363 t .Helper ()
6464 stdout := bytes.Buffer {}
6565 stderr := bytes.Buffer {}
@@ -76,6 +76,7 @@ func cmd(t *testing.T, dir, name string, args ...string) {
7676 t .Log ("STDERR:\n " , stderr .String ())
7777 t .Fatalf ("command failed: %v" , err )
7878 }
79+ return stdout .String ()
7980}
8081
8182func writeFile (t * testing.T , workDir , filePath , content string ) {
@@ -267,3 +268,41 @@ func TestStackerRebase(t *testing.T) {
267268 ".git/refs/stacker/start/test-branch" : file (baseCommit ),
268269 })
269270}
271+
272+ func TestStackerInit (t * testing.T ) {
273+ t .Parallel ()
274+ ctx := context .Background ()
275+
276+ workDir := newRepo (t )
277+
278+ writeFile (t , workDir , "main.txt" , "0\n " )
279+ cmd (t , workDir , "git" , "add" , "main.txt" )
280+ cmd (t , workDir , "git" , "commit" , "-m" , "main: state 0" )
281+ cmd (t , workDir , "git" , "push" )
282+
283+ stkr := Stacker {
284+ git : & git.Runner {
285+ WorkDir : workDir ,
286+ Env : cmdEnv ,
287+ },
288+ }
289+
290+ if err := stkr .Init (ctx , false ); err != nil {
291+ t .Fatal (err )
292+ }
293+
294+ excludeDecorations := cmd (t , workDir , "git" , "config" , "--local" , "--get-all" , "log.excludeDecoration" )
295+ if got , want := excludeDecorations , "refs/stacker/\n " ; got != want {
296+ t .Errorf ("log.excludeDecoration = %v, want %v" , got , want )
297+ }
298+
299+ if err := stkr .Init (ctx , false ); err != nil {
300+ t .Fatal (err )
301+ }
302+
303+ // TODO: make Init idempotent
304+ excludeDecorations = cmd (t , workDir , "git" , "config" , "--local" , "--get-all" , "log.excludeDecoration" )
305+ if got , want := excludeDecorations , "refs/stacker/\n refs/stacker/\n " ; got != want {
306+ t .Errorf ("log.excludeDecoration = %v, want %v" , got , want )
307+ }
308+ }
0 commit comments