diff options
Diffstat (limited to 'internal/admin/model_test.go')
| -rw-r--r-- | internal/admin/model_test.go | 91 |
1 files changed, 44 insertions, 47 deletions
diff --git a/internal/admin/model_test.go b/internal/admin/model_test.go index b73280a..9690263 100644 --- a/internal/admin/model_test.go +++ b/internal/admin/model_test.go @@ -12,12 +12,48 @@ import ( "testing" "github.com/go-git/go-billy/v5/osfs" + "github.com/go-git/go-billy/v5/util" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing/object" "github.com/go-git/go-git/v5/storage/filesystem" "gopkg.in/ini.v1" + "sigs.k8s.io/yaml" ) +func configDefaultTestRepo(repoPath string, defaultConfigBytes []byte) error { + gitFs := osfs.New(repoPath) + strg := filesystem.NewStorage(gitFs, nil) + repo, _ := git.Init(strg, gitFs) + // add file + + fileToCommit := "gitserver.yaml" + // src + err := util.WriteFile(gitFs, fileToCommit, defaultConfigBytes, os.FileMode(int(0644))) + if err != nil { + return err + } + + wt, err := repo.Worktree() + if err != nil { + return err + } + if _, err := wt.Add(fileToCommit); err != nil { + return err + } + _, err = wt.Commit(fileToCommit, + &git.CommitOptions{ + Author: &object.Signature{ + Name: "go git server", + Email: "go-git-server@go-git-server", + }, + }, + ) + if err != nil { + return err + } + return nil +} + //nolint:cyclop func TestCasbinPolicies(t *testing.T) { roleName := "myrole" @@ -146,76 +182,37 @@ func TestMgmtGitConfig(t *testing.T) { // setup tempdir gitDir := t.TempDir() // init git repo - gitFs := osfs.New(gitDir) - strg := filesystem.NewStorage(gitFs, nil) - repo, _ := git.Init(strg, gitFs) - // add file - - // src - srcFile, err := os.Open("../../gitserver.yaml") - if err != nil { - t.Fatalf("Error opening base config %s", err) - } - defer srcFile.Close() - - // file name - // fileToCommit := fs.Join(gitDir, "gitserver.yaml") - fileToCommit := "gitserver.yaml" - - // dest - destFile, err := gitFs.OpenFile(fileToCommit, os.O_RDWR|os.O_CREATE, 0755) - if err != nil { - t.Fatalf("failed to open destination in git repo %s", err) - } - defer destFile.Close() - - // copy - if _, err := io.Copy(destFile, srcFile); err != nil { - t.Fatalf("Error copying file %s", err) - } - // commit - wt, err := repo.Worktree() + repoPath := filepath.Join(gitDir, mgmtRepoName) + defaultConfigBytes, err := yaml.Marshal(defaultServerConfig) if err != nil { t.Fatal(err) } - if _, err := wt.Add(fileToCommit); err != nil { - t.Fatal(err) - } - _, err = wt.Commit(fileToCommit, - &git.CommitOptions{ - Author: &object.Signature{ - Name: "go git server", - Email: "go-git-server@go-git-server", - }, - }, - ) - if err != nil { - t.Fatalf("Error creating commit %s", err) + if err := configDefaultTestRepo(repoPath, defaultConfigBytes); err != nil { + t.Fatal(err) } // run load func - content, err := loadFromGit(gitDir, "gitserver.yaml") + content, err := loadConfigFromGit(gitDir, "gitserver.yaml") if err != nil { t.Fatal(err) } // "go-git-server" - if !bytes.Contains(content, []byte("go-git-server")) { + if !bytes.Equal(content, defaultConfigBytes) { t.Fatal("config missing expected") } // check couldnt clone err - _, err = loadFromGit("/dne/bar", "gitserver.yaml") + _, err = loadConfigFromGit("/dne/bar", "gitserver.yaml") if err == nil { t.Fatal("expected an cloning repo didn't find one") } // check couldnt open file err - _, err = loadFromGit(gitDir, "dne.yaml") + _, err = loadConfigFromGit(gitDir, "dne.yaml") if err == nil { t.Fatal("expected an error opening config file didn't find one") } - // TODO run via serverLoadConfig } //nolint:cyclop |