GitRoot
Craft your forge, Build your project, Grow your community freely
1// SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
2//
3// SPDX-License-Identifier: EUPL-1.2
4
5package repository
6
7import (
8 "context"
9 "testing"
10
11 "gitroot.dev/server/configuration"
12 "gitroot.dev/server/user"
13)
14
15func TestCanCreateAnonymousBranch(t *testing.T) {
16 dataDir := t.TempDir()
17 conf := configuration.NewConfiguration(dataDir)
18 userManager, _ := user.NewManager(conf)
19 m := NewManager(conf, userManager)
20 repoConf := RepoConf{Name: "anonymous", DefaultBranch: "main"}
21 err := m.CreateUserRepo(context.TODO(), repoConf, []user.SimpleUser{}, []byte(""))
22 if err != nil {
23 t.Fatal(err)
24 }
25 repo, err := m.Open(context.TODO(), "anonymous")
26 if err != nil {
27 t.Fatal(err)
28 }
29
30 repoInternalConf, _ := repo.Configuration()
31
32 if err := repoInternalConf.CanCreateAnonymousBranch(repo, 1); err == nil {
33 t.Fatal("main branch do already 1")
34 }
35
36 if err := repoInternalConf.CanCreateAnonymousBranch(repo, 0); err == nil {
37 t.Fatal("main branch do already 1")
38 }
39
40 if err := repoInternalConf.CanCreateAnonymousBranch(repo, 2); err != nil {
41 t.Fatalf("should not throw err %v", err)
42 }
43
44 if err := repoInternalConf.CanCreateAnonymousBranch(repo, -1); err != nil {
45 t.Fatalf("should not throw err %v", err)
46 }
47
48}