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}