1package hooks
2
3import (
4 "context"
5 "os"
6 "path/filepath"
7 "testing"
8
9 "github.com/charmbracelet/soft-serve/git"
10 "github.com/charmbracelet/soft-serve/pkg/config"
11)
12
13func TestGenerateHooks(t *testing.T) {
14 tmp := t.TempDir()
15 cfg := config.DefaultConfig()
16 cfg.DataPath = tmp
17 repoPath := filepath.Join(tmp, "repos", "test.git")
18 _, err := git.Init(repoPath, true)
19 if err != nil {
20 t.Fatal(err)
21 }
22
23 if err := GenerateHooks(context.TODO(), cfg, "test.git"); err != nil {
24 t.Fatal(err)
25 }
26
27 for _, hn := range []string{
28 PreReceiveHook,
29 UpdateHook,
30 PostReceiveHook,
31 PostUpdateHook,
32 } {
33 if _, err := os.Stat(filepath.Join(repoPath, "hooks", hn)); err != nil {
34 t.Fatal(err)
35 }
36 if _, err := os.Stat(filepath.Join(repoPath, "hooks", hn+".d", "soft-serve")); err != nil {
37 t.Fatal(err)
38 }
39 }
40}