internal/control/read_test.go

9df917e73a67d15adecc3f45976690f6fcd4e47a
gitbay/internal/control/read_test.go history · blame · raw

37 lines · 1010 bytes

 1package control
 2
 3import (
 4	"bytes"
 5	"os"
 6	"path/filepath"
 7	"testing"
 8
 9	"gitbay.org/gitbay/internal/protocol"
10	"gitbay.org/gitbay/internal/store"
11)
12
13func TestRepoReadmePicksTheRichestFormat(t *testing.T) {
14	st, repo, uid := newQueueTestRepo(t)
15	git := gitRunner(t)
16	root := t.TempDir()
17
18	src := filepath.Join(root, "src")
19	os.MkdirAll(src, 0o755)
20	os.WriteFile(filepath.Join(src, "README.md"), []byte("# app\n\nhello\n"), 0o644)
21	git(root, "init", "-q", "-b", "main", "src")
22	git(src, "add", ".")
23	git(src, "commit", "-q", "-m", "base")
24
25	dir := RepoDir(root, repo.OwnerName, repo.Name)
26	os.MkdirAll(filepath.Dir(dir), 0o755)
27	git(root, "clone", "-q", "--bare", src, dir)
28
29	c, errOut := pruneCtx(st, root, store.User{ID: uid})
30	c.Cfg.Limits.MaxBlobBytes = 100 << 20
31	if code := Dispatch(c, []string{"repo", "readme", repo.Path()}); code != protocol.ExitOK {
32		t.Fatalf("exit %d: %s", code, errOut)
33	}
34	if got := c.Stdout.(*bytes.Buffer).String(); got != "# app\n\nhello\n" {
35		t.Errorf("readme = %q", got)
36	}
37}