package git import ( "testing" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/storage/memory" ) func TestSwitchToMain(t *testing.T) { // Create a new in-memory repository storage := memory.NewStorage() repo, err := git.Init(storage, nil) if err != nil { t.Fatalf("failed to create in-memory repository: %v", err) } // Call the function under test err = SwitchToMain(repo) if err != nil { t.Fatalf("SwitchToMain failed: %v", err) } // Verify that HEAD points to the 'main' branch ref, err := repo.Reference(plumbing.HEAD, false) if err != nil { t.Fatalf("failed to get HEAD reference: %v", err) } if ref.Target().String() != "refs/heads/main" { t.Errorf("expected HEAD to point to 'refs/heads/main', got %s", ref.Target().String()) } // Verify that the default branch is set to 'main' in the config cfg, err := repo.Config() if err != nil { t.Fatalf("failed to get repository config: %v", err) } if cfg.Init.DefaultBranch != "main" { t.Errorf("expected default branch to be 'main', got %s", cfg.Init.DefaultBranch) } }