Skip to content

Commit e828ab8

Browse files
committed
Add testcase for Init
1 parent 4afe932 commit e828ab8

1 file changed

Lines changed: 40 additions & 1 deletion

File tree

internal/stacker/stacker_test.go

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

8182
func 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/\nrefs/stacker/\n"; got != want {
306+
t.Errorf("log.excludeDecoration = %v, want %v", got, want)
307+
}
308+
}

0 commit comments

Comments
 (0)