jesseduffield.lazygit/pkg/integration/components/views.go
Stefan Haller 68355862c1 Add test helpers for a menu's filter row
Its footer, the hint in the menu's subtitle, where the row sits in
relation to the menu and the tooltip, and whether the text cursor is
showing are all things the tests for it need to look at.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 20:41:22 +02:00

166 lines
3.6 KiB
Go

package components
import (
"fmt"
"github.com/jesseduffield/lazygit/pkg/gocui"
)
type Views struct {
t *TestDriver
}
func (self *Views) Main() *ViewDriver {
return &ViewDriver{
context: "main view",
getView: func() *gocui.View { return self.t.gui.MainView() },
t: self.t,
}
}
func (self *Views) Secondary() *ViewDriver {
return &ViewDriver{
context: "secondary view",
getView: func() *gocui.View { return self.t.gui.SecondaryView() },
t: self.t,
}
}
func (self *Views) regularView(viewName string) *ViewDriver {
return &ViewDriver{
context: fmt.Sprintf("%s view", viewName),
getView: func() *gocui.View { return self.t.gui.View(viewName) },
t: self.t,
}
}
func (self *Views) patchExplorerViewByName(viewName string) *ViewDriver {
return self.regularView(viewName)
}
func (self *Views) MergeConflicts() *ViewDriver {
return self.regularView("mergeConflicts")
}
func (self *Views) Commits() *ViewDriver {
return self.regularView("commits")
}
func (self *Views) Files() *ViewDriver {
return self.regularView("files")
}
func (self *Views) Worktrees() *ViewDriver {
return self.regularView("worktrees")
}
func (self *Views) Status() *ViewDriver {
return self.regularView("status")
}
func (self *Views) Submodules() *ViewDriver {
return self.regularView("submodules")
}
func (self *Views) Information() *ViewDriver {
return self.regularView("information")
}
func (self *Views) AppStatus() *ViewDriver {
return self.regularView("appStatus")
}
func (self *Views) Branches() *ViewDriver {
return self.regularView("localBranches")
}
func (self *Views) Remotes() *ViewDriver {
return self.regularView("remotes")
}
func (self *Views) RemoteBranches() *ViewDriver {
return self.regularView("remoteBranches")
}
func (self *Views) Tags() *ViewDriver {
return self.regularView("tags")
}
func (self *Views) ReflogCommits() *ViewDriver {
return self.regularView("reflogCommits")
}
func (self *Views) SubCommits() *ViewDriver {
return self.regularView("subCommits")
}
func (self *Views) CommitFiles() *ViewDriver {
return self.regularView("commitFiles")
}
func (self *Views) Stash() *ViewDriver {
return self.regularView("stash")
}
func (self *Views) Staging() *ViewDriver {
return self.patchExplorerViewByName("staging")
}
func (self *Views) StagingSecondary() *ViewDriver {
return self.patchExplorerViewByName("stagingSecondary")
}
func (self *Views) PatchBuilding() *ViewDriver {
return self.patchExplorerViewByName("patchBuilding")
}
func (self *Views) PatchBuildingSecondary() *ViewDriver {
// this is not a patch explorer view because you can't actually focus it: it
// just renders content
return self.regularView("patchBuildingSecondary")
}
func (self *Views) Menu() *ViewDriver {
return self.regularView("menu")
}
func (self *Views) MenuFilter() *ViewDriver {
return self.regularView("menuFilter")
}
func (self *Views) MenuFilterFrame() *ViewDriver {
return self.regularView("menuFilterFrame")
}
func (self *Views) Confirmation() *ViewDriver {
return self.regularView("confirmation")
}
func (self *Views) Prompt() *ViewDriver {
return self.regularView("prompt")
}
func (self *Views) CommitMessage() *ViewDriver {
return self.regularView("commitMessage")
}
func (self *Views) CommitDescription() *ViewDriver {
return self.regularView("commitDescription")
}
func (self *Views) Suggestions() *ViewDriver {
return self.regularView("suggestions")
}
func (self *Views) Search() *ViewDriver {
return self.regularView("search")
}
func (self *Views) Tooltip() *ViewDriver {
return self.regularView("tooltip")
}
func (self *Views) Options() *ViewDriver {
return self.regularView("options")
}