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}