internal/control/read_test.go
37 lines · 1010 bytes
1 symbol in this file
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}