components

package
v0.39.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2023 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TEST_NAME_ENV_VAR         = "TEST_NAME"
	SANDBOX_ENV_VAR           = "SANDBOX"
	GIT_CONFIG_GLOBAL_ENV_VAR = "GIT_CONFIG_GLOBAL"
)
View Source
const ClearKey = "<c-u>"

TODO: soft-code this

View Source
const IS_SELECTED_RULE_NAME = "is selected"

Variables

This section is empty.

Functions

func KeyPressDelay

func KeyPressDelay() int

this is the delay in milliseconds between keypresses defaults to zero

func RunTests

func RunTests(
	tests []*IntegrationTest,
	logf func(format string, formatArgs ...interface{}),
	runCmd func(cmd *exec.Cmd) error,
	testWrapper func(test *IntegrationTest, f func() error),
	sandbox bool,
	keyPressDelay int,
	maxAttempts int,
) error

This function lets you run tests either from within `go test` or from a regular binary. The reason for having two separate ways of testing is that `go test` isn't great at showing what's actually happening during the test, but it's still good at running tests in telling you about their results.

func TestNameFromFilePath

func TestNameFromFilePath(path string) string

Types

type AlertDriver added in v0.37.0

type AlertDriver struct {
	// contains filtered or unexported fields
}

func (*AlertDriver) Cancel added in v0.37.0

func (self *AlertDriver) Cancel()

func (*AlertDriver) Confirm added in v0.37.0

func (self *AlertDriver) Confirm()

func (*AlertDriver) Content added in v0.37.0

func (self *AlertDriver) Content(expected *TextMatcher) *AlertDriver

asserts that the alert view has the expected content

func (*AlertDriver) Title added in v0.37.0

func (self *AlertDriver) Title(expected *TextMatcher) *AlertDriver

asserts that the alert view has the expected title

type CommitDescriptionPanelDriver added in v0.38.0

type CommitDescriptionPanelDriver struct {
	// contains filtered or unexported fields
}

func (*CommitDescriptionPanelDriver) AddNewline added in v0.38.0

func (*CommitDescriptionPanelDriver) SwitchToSummary added in v0.38.0

func (self *CommitDescriptionPanelDriver) SwitchToSummary() *CommitMessagePanelDriver

func (*CommitDescriptionPanelDriver) Type added in v0.38.0

type CommitMessagePanelDriver added in v0.37.0

type CommitMessagePanelDriver struct {
	// contains filtered or unexported fields
}

func (*CommitMessagePanelDriver) AddNewline added in v0.37.0

func (*CommitMessagePanelDriver) Cancel added in v0.37.0

func (self *CommitMessagePanelDriver) Cancel()

func (*CommitMessagePanelDriver) Clear added in v0.37.0

func (*CommitMessagePanelDriver) Close added in v0.38.0

func (self *CommitMessagePanelDriver) Close()

func (*CommitMessagePanelDriver) Confirm added in v0.37.0

func (self *CommitMessagePanelDriver) Confirm()

func (*CommitMessagePanelDriver) Content added in v0.38.0

asserts on the current context in the prompt

func (*CommitMessagePanelDriver) InitialText added in v0.37.0

func (self *CommitMessagePanelDriver) InitialText(expected *TextMatcher) *CommitMessagePanelDriver

asserts on the text initially present in the prompt

func (*CommitMessagePanelDriver) SelectNextMessage added in v0.38.0

func (self *CommitMessagePanelDriver) SelectNextMessage() *CommitMessagePanelDriver

func (*CommitMessagePanelDriver) SelectPreviousMessage added in v0.38.0

func (self *CommitMessagePanelDriver) SelectPreviousMessage() *CommitMessagePanelDriver

func (*CommitMessagePanelDriver) SwitchToDescription added in v0.38.0

func (self *CommitMessagePanelDriver) SwitchToDescription() *CommitDescriptionPanelDriver

func (*CommitMessagePanelDriver) Title added in v0.38.0

asserts that the confirmation view has the expected title

func (*CommitMessagePanelDriver) Type added in v0.37.0

type Common added in v0.38.0

type Common struct {
	// contains filtered or unexported fields
}

for running common actions

func (*Common) AcknowledgeConflicts added in v0.38.0

func (self *Common) AcknowledgeConflicts()

func (*Common) ConfirmDiscardLines added in v0.38.0

func (self *Common) ConfirmDiscardLines()

func (*Common) ContinueMerge added in v0.38.0

func (self *Common) ContinueMerge()

func (*Common) ContinueOnConflictsResolved added in v0.38.0

func (self *Common) ContinueOnConflictsResolved()

func (*Common) ContinueRebase added in v0.38.0

func (self *Common) ContinueRebase()

func (*Common) SelectPatchOption added in v0.38.0

func (self *Common) SelectPatchOption(matcher *TextMatcher)

type ConfirmationDriver added in v0.37.0

type ConfirmationDriver struct {
	// contains filtered or unexported fields
}

func (*ConfirmationDriver) Cancel added in v0.37.0

func (self *ConfirmationDriver) Cancel()

func (*ConfirmationDriver) Confirm added in v0.37.0

func (self *ConfirmationDriver) Confirm()

func (*ConfirmationDriver) Content added in v0.37.0

func (self *ConfirmationDriver) Content(expected *TextMatcher) *ConfirmationDriver

asserts that the confirmation view has the expected content

func (*ConfirmationDriver) Title added in v0.37.0

func (self *ConfirmationDriver) Title(expected *TextMatcher) *ConfirmationDriver

asserts that the confirmation view has the expected title

type FileSystem added in v0.37.0

type FileSystem struct {
	// contains filtered or unexported fields
}

func (*FileSystem) FileContent added in v0.37.0

func (self *FileSystem) FileContent(path string, matcher *TextMatcher)

Asserts that the file at the given path has the given content

func (*FileSystem) PathNotPresent added in v0.37.0

func (self *FileSystem) PathNotPresent(path string)

This does _not_ check the files panel, it actually checks the filesystem

func (*FileSystem) PathPresent added in v0.37.0

func (self *FileSystem) PathPresent(path string)

This does _not_ check the files panel, it actually checks the filesystem

type Git added in v0.37.0

type Git struct {
	// contains filtered or unexported fields
}

func (*Git) CurrentBranchName added in v0.37.0

func (self *Git) CurrentBranchName(expectedName string) *Git

func (*Git) TagNamesAt added in v0.38.0

func (self *Git) TagNamesAt(ref string, expectedNames []string) *Git

type GitVersionRestriction added in v0.38.0

type GitVersionRestriction struct {
	// contains filtered or unexported fields
}

func AtLeast added in v0.38.2

func AtLeast(version string) GitVersionRestriction

Verifies the version is at least the given version (inclusive)

func Before added in v0.38.0

func Before(version string) GitVersionRestriction

Verifies the version is before the given version (exclusive)

func Includes added in v0.38.0

func Includes(versions ...string) GitVersionRestriction

type IntMatcher added in v0.39.0

type IntMatcher struct {
	*Matcher[int]
}

func AnyInt added in v0.39.0

func AnyInt() *IntMatcher

func EqualsInt added in v0.39.0

func EqualsInt(target int) *IntMatcher

func GreaterThan added in v0.39.0

func GreaterThan(target int) *IntMatcher

func LessThan added in v0.39.0

func LessThan(target int) *IntMatcher

func (*IntMatcher) EqualsInt added in v0.39.0

func (self *IntMatcher) EqualsInt(target int) *IntMatcher

func (*IntMatcher) GreaterThan added in v0.39.0

func (self *IntMatcher) GreaterThan(target int) *IntMatcher

func (*IntMatcher) LessThan added in v0.39.0

func (self *IntMatcher) LessThan(target int) *IntMatcher

type IntegrationTest

type IntegrationTest struct {
	// contains filtered or unexported fields
}

func NewIntegrationTest

func NewIntegrationTest(args NewIntegrationTestArgs) *IntegrationTest

func (*IntegrationTest) Description

func (self *IntegrationTest) Description() string

func (*IntegrationTest) ExtraCmdArgs

func (self *IntegrationTest) ExtraCmdArgs() []string

func (*IntegrationTest) ExtraEnvVars added in v0.39.0

func (self *IntegrationTest) ExtraEnvVars() map[string]string

func (*IntegrationTest) HeadlessDimensions added in v0.39.0

func (self *IntegrationTest) HeadlessDimensions() (int, int)

func (*IntegrationTest) Name

func (self *IntegrationTest) Name() string

func (*IntegrationTest) RequiresHeadless added in v0.39.0

func (self *IntegrationTest) RequiresHeadless() bool

func (*IntegrationTest) Run

func (*IntegrationTest) SetupConfig

func (self *IntegrationTest) SetupConfig(config *config.AppConfig)

func (*IntegrationTest) SetupRepo

func (self *IntegrationTest) SetupRepo(shell *Shell)

func (*IntegrationTest) ShouldRunForGitVersion added in v0.38.0

func (self *IntegrationTest) ShouldRunForGitVersion(version *git_commands.GitVersion) bool

func (*IntegrationTest) Skip

func (self *IntegrationTest) Skip() bool

type Matcher added in v0.38.0

type Matcher[T any] struct {
	// contains filtered or unexported fields
}

for making assertions on string values

type MenuDriver struct {
	// contains filtered or unexported fields
}
func (self *MenuDriver) Cancel()
func (self *MenuDriver) Confirm()
func (self *MenuDriver) Filter(text string) *MenuDriver
func (self *MenuDriver) LineCount(matcher *IntMatcher) *MenuDriver
func (self *MenuDriver) Lines(matchers ...*TextMatcher) *MenuDriver
func (self *MenuDriver) Select(option *TextMatcher) *MenuDriver
func (self *MenuDriver) Title(expected *TextMatcher) *MenuDriver

asserts that the popup has the expected title

func (self *MenuDriver) TopLines(matchers ...*TextMatcher) *MenuDriver

type NewIntegrationTestArgs

type NewIntegrationTestArgs struct {
	// Briefly describes what happens in the test and what it's testing for
	Description string
	// prepares a repo for testing
	SetupRepo func(shell *Shell)
	// takes a config and mutates. The mutated context will end up being passed to the gui
	SetupConfig func(config *config.AppConfig)
	// runs the test
	Run func(t *TestDriver, keys config.KeybindingConfig)
	// additional args passed to lazygit
	ExtraCmdArgs []string
	// for when a test is flakey
	ExtraEnvVars map[string]string
	Skip         bool
	// to run a test only on certain git versions
	GitVersion GitVersionRestriction
	// width and height when running in headless mode, for testing
	// the UI in different sizes.
	// If these are set, the test must be run in headless mode
	Width  int
	Height int
}

type Paths

type Paths struct {
	// contains filtered or unexported fields
}

convenience struct for easily getting directories within our test directory. We have one test directory for each test, found in test/results.

func NewPaths

func NewPaths(root string) Paths

func (Paths) Actual

func (self Paths) Actual() string

when a test first runs, it's situated in a repo called 'repo' within this directory. In its setup step, the test is allowed to create other repos alongside the 'repo' repo in this directory, for example, creating remotes or repos to add as submodules.

func (Paths) ActualRepo

func (self Paths) ActualRepo() string

this is the 'repo' directory within the 'actual' directory, where a lazygit test will start within.

func (Paths) Config

func (self Paths) Config() string

func (Paths) Expected

func (self Paths) Expected() string

When an integration test first runs, we copy everything in the 'actual' directory, and copy it into the 'expected' directory so that future runs can be compared against what we expect.

func (Paths) Root

func (self Paths) Root() string
type Popup struct {
	// contains filtered or unexported fields
}

func (*Popup) Alert added in v0.37.0

func (self *Popup) Alert() *AlertDriver

func (*Popup) CommitDescriptionPanel added in v0.38.0

func (self *Popup) CommitDescriptionPanel() *CommitMessagePanelDriver

func (*Popup) CommitMessagePanel added in v0.37.0

func (self *Popup) CommitMessagePanel() *CommitMessagePanelDriver

func (*Popup) Confirmation added in v0.37.0

func (self *Popup) Confirmation() *ConfirmationDriver

func (*Popup) Menu added in v0.37.0

func (self *Popup) Menu() *MenuDriver

func (*Popup) Prompt added in v0.37.0

func (self *Popup) Prompt() *PromptDriver

type PromptDriver added in v0.37.0

type PromptDriver struct {
	// contains filtered or unexported fields
}

func (*PromptDriver) Cancel added in v0.37.0

func (self *PromptDriver) Cancel()

func (*PromptDriver) Clear added in v0.37.0

func (self *PromptDriver) Clear() *PromptDriver

func (*PromptDriver) Confirm added in v0.37.0

func (self *PromptDriver) Confirm()

func (*PromptDriver) ConfirmFirstSuggestion added in v0.37.0

func (self *PromptDriver) ConfirmFirstSuggestion()

func (*PromptDriver) ConfirmSuggestion added in v0.37.0

func (self *PromptDriver) ConfirmSuggestion(matcher *TextMatcher)

func (*PromptDriver) InitialText added in v0.37.0

func (self *PromptDriver) InitialText(expected *TextMatcher) *PromptDriver

asserts on the text initially present in the prompt

func (*PromptDriver) SuggestionLines added in v0.37.0

func (self *PromptDriver) SuggestionLines(matchers ...*TextMatcher) *PromptDriver

func (*PromptDriver) SuggestionTopLines added in v0.37.0

func (self *PromptDriver) SuggestionTopLines(matchers ...*TextMatcher) *PromptDriver

func (*PromptDriver) Title added in v0.37.0

func (self *PromptDriver) Title(expected *TextMatcher) *PromptDriver

asserts that the popup has the expected title

func (*PromptDriver) Type added in v0.37.0

func (self *PromptDriver) Type(value string) *PromptDriver

type SearchDriver added in v0.38.0

type SearchDriver struct {
	// contains filtered or unexported fields
}

func (*SearchDriver) Cancel added in v0.38.0

func (self *SearchDriver) Cancel()

func (*SearchDriver) Clear added in v0.38.0

func (self *SearchDriver) Clear() *SearchDriver

func (*SearchDriver) Confirm added in v0.38.0

func (self *SearchDriver) Confirm()

func (*SearchDriver) InitialText added in v0.38.0

func (self *SearchDriver) InitialText(expected *TextMatcher) *SearchDriver

asserts on the text initially present in the prompt

func (*SearchDriver) Type added in v0.38.0

func (self *SearchDriver) Type(value string) *SearchDriver

type Shell

type Shell struct {
	// contains filtered or unexported fields
}

this is for running shell commands, mostly for the sake of setting up the repo but you can also run the commands from within lazygit to emulate things happening in the background.

func NewShell

func NewShell(dir string, fail func(string)) *Shell

func (*Shell) Checkout

func (self *Shell) Checkout(name string) *Shell

func (*Shell) Clone added in v0.38.0

func (self *Shell) Clone(repoName string) *Shell

func (*Shell) CloneIntoRemote added in v0.37.0

func (self *Shell) CloneIntoRemote(name string) *Shell

func (*Shell) CloneIntoSubmodule added in v0.38.0

func (self *Shell) CloneIntoSubmodule(submoduleName string) *Shell

func (*Shell) Commit

func (self *Shell) Commit(message string) *Shell

func (*Shell) ContinueMerge added in v0.38.0

func (self *Shell) ContinueMerge() *Shell

func (*Shell) CopyFile added in v0.39.0

func (self *Shell) CopyFile(source string, destination string) *Shell

func (*Shell) CopyHelpFile added in v0.38.0

func (self *Shell) CopyHelpFile(source string, destination string) *Shell

Help files are located at test/files from the root the lazygit repo. E.g. You may want to create a pre-commit hook file there, then call this function to copy it into your test repo.

func (*Shell) CreateAnnotatedTag added in v0.38.0

func (self *Shell) CreateAnnotatedTag(name string, message string, ref string) *Shell

func (*Shell) CreateDir

func (self *Shell) CreateDir(path string) *Shell

func (*Shell) CreateFile

func (self *Shell) CreateFile(path string, content string) *Shell

func (*Shell) CreateFileAndAdd

func (self *Shell) CreateFileAndAdd(fileName string, fileContents string) *Shell

convenience method for creating a file and adding it

func (*Shell) CreateLightweightTag added in v0.38.0

func (self *Shell) CreateLightweightTag(name string, ref string) *Shell

func (*Shell) CreateNCommits

func (self *Shell) CreateNCommits(n int) *Shell

creates commits 01, 02, 03, ..., n with a new file in each The reason for padding with zeroes is so that it's easier to do string matches on the commit messages when there are many of them

func (*Shell) CreateNCommitsStartingAt added in v0.38.0

func (self *Shell) CreateNCommitsStartingAt(n, startIndex int) *Shell

func (*Shell) DeleteFile added in v0.38.0

func (self *Shell) DeleteFile(path string) *Shell

func (*Shell) DeleteFileAndAdd added in v0.38.0

func (self *Shell) DeleteFileAndAdd(fileName string) *Shell

convenience method for deleting a file and adding it

func (*Shell) EmptyCommit

func (self *Shell) EmptyCommit(message string) *Shell

func (*Shell) GitAdd

func (self *Shell) GitAdd(path string) *Shell

func (*Shell) GitAddAll

func (self *Shell) GitAddAll() *Shell

func (*Shell) HardReset added in v0.37.0

func (self *Shell) HardReset(ref string) *Shell

func (*Shell) Init added in v0.39.0

func (self *Shell) Init() *Shell

func (*Shell) MakeExecutable added in v0.39.0

func (self *Shell) MakeExecutable(path string) *Shell

func (*Shell) Merge

func (self *Shell) Merge(name string) *Shell

func (*Shell) NewBranch

func (self *Shell) NewBranch(name string) *Shell

func (*Shell) RemoveRemoteBranch added in v0.37.0

func (self *Shell) RemoveRemoteBranch(remoteName string, branch string) *Shell

func (*Shell) Revert added in v0.38.0

func (self *Shell) Revert(ref string) *Shell

func (*Shell) RunCommand

func (self *Shell) RunCommand(args []string) *Shell

func (*Shell) RunCommandExpectError added in v0.39.0

func (self *Shell) RunCommandExpectError(args []string) *Shell

func (*Shell) RunShellCommand added in v0.37.0

func (self *Shell) RunShellCommand(cmdStr string) *Shell

func (*Shell) SetBranchUpstream added in v0.37.0

func (self *Shell) SetBranchUpstream(branch string, upstream string) *Shell

func (*Shell) SetConfig added in v0.37.0

func (self *Shell) SetConfig(key string, value string) *Shell

func (*Shell) StartBisect added in v0.39.0

func (self *Shell) StartBisect(good string, bad string) *Shell

func (*Shell) Stash added in v0.38.0

func (self *Shell) Stash(message string) *Shell

func (*Shell) UpdateFile

func (self *Shell) UpdateFile(path string, content string) *Shell

func (*Shell) UpdateFileAndAdd

func (self *Shell) UpdateFileAndAdd(fileName string, fileContents string) *Shell

convenience method for updating a file and adding it

type TestDriver added in v0.37.0

type TestDriver struct {
	// contains filtered or unexported fields
}

func NewTestDriver added in v0.37.0

func NewTestDriver(gui integrationTypes.GuiDriver, shell *Shell, keys config.KeybindingConfig, pushKeyDelay int) *TestDriver

func (*TestDriver) Common added in v0.38.0

func (self *TestDriver) Common() *Common

func (*TestDriver) ExpectClipboard added in v0.37.0

func (self *TestDriver) ExpectClipboard(matcher *TextMatcher)

func (*TestDriver) ExpectPopup added in v0.37.0

func (self *TestDriver) ExpectPopup() *Popup

for interacting with popups

func (*TestDriver) ExpectSearch added in v0.38.0

func (self *TestDriver) ExpectSearch() *SearchDriver

func (*TestDriver) ExpectToast added in v0.37.0

func (self *TestDriver) ExpectToast(matcher *TextMatcher)

func (*TestDriver) Fail added in v0.37.0

func (self *TestDriver) Fail(message string)

for when you just want to fail the test yourself. This runs callbacks to ensure we render the error after closing the gui.

func (*TestDriver) FileSystem added in v0.37.0

func (self *TestDriver) FileSystem() *FileSystem

for making assertions on the file system

func (*TestDriver) Git added in v0.37.0

func (self *TestDriver) Git() *Git

for making assertions through git itself

func (*TestDriver) GlobalPress added in v0.38.0

func (self *TestDriver) GlobalPress(keyStr string)

Should only be used in specific cases where you're doing something weird! E.g. invoking a global keybinding from within a popup. You probably shouldn't use this function, and should instead go through a view like t.Views().Commit().Focus().Press(...)

func (*TestDriver) Log added in v0.37.0

func (self *TestDriver) Log(message string)

func (*TestDriver) LogUI added in v0.37.0

func (self *TestDriver) LogUI(message string)

func (*TestDriver) Shell added in v0.37.0

func (self *TestDriver) Shell() *Shell

allows the user to run shell commands during the test to emulate background activity

func (*TestDriver) Views added in v0.37.0

func (self *TestDriver) Views() *Views

for making assertions on lazygit views

func (*TestDriver) Wait added in v0.37.0

func (self *TestDriver) Wait(milliseconds int)

for when you want to allow lazygit to process something before continuing

type TextMatcher added in v0.39.0

type TextMatcher struct {
	*Matcher[string]
}

func AnyString added in v0.39.0

func AnyString() *TextMatcher

this matcher has no rules meaning it always passes the test. Use this when you don't care what value you're dealing with.

func Contains

func Contains(target string) *TextMatcher

func DoesNotContain added in v0.37.0

func DoesNotContain(target string) *TextMatcher

func Equals

func Equals(target string) *TextMatcher

func MatchesRegexp added in v0.37.0

func MatchesRegexp(target string) *TextMatcher

func (*TextMatcher) Contains added in v0.39.0

func (self *TextMatcher) Contains(target string) *TextMatcher

func (*TextMatcher) DoesNotContain added in v0.39.0

func (self *TextMatcher) DoesNotContain(target string) *TextMatcher

func (*TextMatcher) Equals added in v0.39.0

func (self *TextMatcher) Equals(target string) *TextMatcher

func (*TextMatcher) IsSelected added in v0.39.0

func (self *TextMatcher) IsSelected() *TextMatcher

special rule that is only to be used in the TopLines and Lines methods, as a way of asserting that a given line is selected.

func (*TextMatcher) MatchesRegexp added in v0.39.0

func (self *TextMatcher) MatchesRegexp(target string) *TextMatcher

type ViewDriver added in v0.37.0

type ViewDriver struct {
	// contains filtered or unexported fields
}

func (*ViewDriver) ContainsColoredText added in v0.39.0

func (self *ViewDriver) ContainsColoredText(fgColorStr string, text string) *ViewDriver

func (*ViewDriver) ContainsLines added in v0.38.0

func (self *ViewDriver) ContainsLines(matchers ...*TextMatcher) *ViewDriver

asserts that somewhere in the view there are consequetive lines matching the given matchers.

func (*ViewDriver) Content added in v0.37.0

func (self *ViewDriver) Content(matcher *TextMatcher) *ViewDriver

asserts on the content of the view i.e. the stuff within the view's frame.

func (*ViewDriver) DoesNotContainColoredText added in v0.39.0

func (self *ViewDriver) DoesNotContainColoredText(fgColorStr string, text string) *ViewDriver

func (*ViewDriver) FilterOrSearch added in v0.39.0

func (self *ViewDriver) FilterOrSearch(text string) *ViewDriver

will filter or search depending on whether the view supports filtering/searching

func (*ViewDriver) Focus added in v0.37.0

func (self *ViewDriver) Focus() *ViewDriver

focus the view (assumes the view is a side-view)

func (*ViewDriver) IsEmpty added in v0.37.0

func (self *ViewDriver) IsEmpty() *ViewDriver

returns true if the view is a list view and it contains no items

func (*ViewDriver) IsFocused added in v0.37.0

func (self *ViewDriver) IsFocused() *ViewDriver

asserts that the view is focused

func (*ViewDriver) IsInvisible added in v0.39.0

func (self *ViewDriver) IsInvisible() *ViewDriver

func (*ViewDriver) IsVisible added in v0.39.0

func (self *ViewDriver) IsVisible() *ViewDriver

func (*ViewDriver) LineCount added in v0.37.0

func (self *ViewDriver) LineCount(matcher *IntMatcher) *ViewDriver

func (*ViewDriver) Lines added in v0.37.0

func (self *ViewDriver) Lines(matchers ...*TextMatcher) *ViewDriver

asserts that the view has lines matching the given matchers. One matcher must be passed for each line. If you only care about the top n lines, use the TopLines method instead. If you only care about a subset of lines, use the ContainsLines method instead.

func (*ViewDriver) NavigateToLine added in v0.38.0

func (self *ViewDriver) NavigateToLine(matcher *TextMatcher) *ViewDriver

this will look for a list item in the current panel and if it finds it, it will enter the keypresses required to navigate to it. The test will fail if: - the user is not in a list item - no list item is found containing the given text - multiple list items are found containing the given text in the initial page of items

NOTE: this currently assumes that BufferLines returns all the lines that can be accessed. If this changes in future, we'll need to update this code to first attempt to find the item in the current page and failing that, jump to the top of the view and iterate through all of it, looking for the item.

func (*ViewDriver) Press added in v0.37.0

func (self *ViewDriver) Press(keyStr string) *ViewDriver

func (*ViewDriver) PressEnter added in v0.37.0

func (self *ViewDriver) PressEnter() *ViewDriver

i.e. pressing space

func (*ViewDriver) PressEscape added in v0.37.0

func (self *ViewDriver) PressEscape() *ViewDriver

i.e. pressing escape

func (*ViewDriver) PressPrimaryAction added in v0.37.0

func (self *ViewDriver) PressPrimaryAction() *ViewDriver

i.e. pressing space

func (*ViewDriver) PressTab added in v0.38.0

func (self *ViewDriver) PressTab() *ViewDriver

i.e. pressing tab

func (*ViewDriver) SelectNextItem added in v0.37.0

func (self *ViewDriver) SelectNextItem() *ViewDriver

i.e. pressing down arrow

func (*ViewDriver) SelectPreviousItem added in v0.37.0

func (self *ViewDriver) SelectPreviousItem() *ViewDriver

i.e. pressing up arrow

func (*ViewDriver) SelectedLine added in v0.37.0

func (self *ViewDriver) SelectedLine(matcher *TextMatcher) *ViewDriver

asserts on the selected line of the view. If your view has multiple lines selected, but also has a concept of a cursor position, this will assert on the line that the cursor is on. Otherwise it will assert on the first line of the selection.

func (*ViewDriver) SelectedLineIdx added in v0.37.0

func (self *ViewDriver) SelectedLineIdx(expected int) *ViewDriver

asserts on the index of the selected line. 0 is the first index, representing the line at the top of the view.

func (*ViewDriver) SelectedLines added in v0.38.0

func (self *ViewDriver) SelectedLines(matchers ...*TextMatcher) *ViewDriver

asserts on the lines that are selected in the view. Don't use the `IsSelected` matcher with this because it's redundant.

func (*ViewDriver) Self added in v0.38.0

func (self *ViewDriver) Self() *ViewDriver

This purely exists as a convenience method for those who hate the trailing periods in multi-line method chains

func (*ViewDriver) Tap added in v0.37.0

func (self *ViewDriver) Tap(f func()) *ViewDriver

for when you want to make some assertion unrelated to the current view without breaking the method chain

func (*ViewDriver) Title added in v0.37.0

func (self *ViewDriver) Title(expected *TextMatcher) *ViewDriver

asserts that the view has the expected title

func (*ViewDriver) TopLines added in v0.37.0

func (self *ViewDriver) TopLines(matchers ...*TextMatcher) *ViewDriver

asserts that the view has lines matching the given matchers. So if three matchers are passed, we only check the first three lines of the view. This method is convenient when you have a list of commits but you only want to assert on the first couple of commits.

func (*ViewDriver) VisibleLines added in v0.39.0

func (self *ViewDriver) VisibleLines(matchers ...*TextMatcher) *ViewDriver

Asserts on the visible lines of the view. Note, this assumes that the view's viewport is filled with lines

type Views added in v0.37.0

type Views struct {
	// contains filtered or unexported fields
}

func (*Views) AppStatus added in v0.37.0

func (self *Views) AppStatus() *ViewDriver

func (*Views) Branches added in v0.37.0

func (self *Views) Branches() *ViewDriver

func (*Views) CommitDescription added in v0.38.0

func (self *Views) CommitDescription() *ViewDriver

func (*Views) CommitFiles added in v0.37.0

func (self *Views) CommitFiles() *ViewDriver

func (*Views) CommitMessage added in v0.37.0

func (self *Views) CommitMessage() *ViewDriver

func (*Views) Commits added in v0.37.0

func (self *Views) Commits() *ViewDriver

func (*Views) Confirmation added in v0.37.0

func (self *Views) Confirmation() *ViewDriver

func (*Views) Files added in v0.37.0

func (self *Views) Files() *ViewDriver

func (*Views) Information added in v0.37.0

func (self *Views) Information() *ViewDriver

func (*Views) Main added in v0.37.0

func (self *Views) Main() *ViewDriver

func (*Views) Menu added in v0.37.0

func (self *Views) Menu() *ViewDriver

func (*Views) MergeConflicts added in v0.37.0

func (self *Views) MergeConflicts() *ViewDriver

func (*Views) PatchBuilding added in v0.38.0

func (self *Views) PatchBuilding() *ViewDriver

func (*Views) PatchBuildingSecondary added in v0.38.0

func (self *Views) PatchBuildingSecondary() *ViewDriver

func (*Views) ReflogCommits added in v0.37.0

func (self *Views) ReflogCommits() *ViewDriver

func (*Views) RemoteBranches added in v0.37.0

func (self *Views) RemoteBranches() *ViewDriver

func (*Views) Remotes added in v0.38.0

func (self *Views) Remotes() *ViewDriver

func (*Views) Search added in v0.38.0

func (self *Views) Search() *ViewDriver

func (*Views) Secondary added in v0.37.0

func (self *Views) Secondary() *ViewDriver

func (*Views) Staging added in v0.37.0

func (self *Views) Staging() *ViewDriver

func (*Views) StagingSecondary added in v0.37.0

func (self *Views) StagingSecondary() *ViewDriver

func (*Views) Stash added in v0.37.0

func (self *Views) Stash() *ViewDriver

func (*Views) Status added in v0.37.0

func (self *Views) Status() *ViewDriver

func (*Views) SubCommits added in v0.37.0

func (self *Views) SubCommits() *ViewDriver

func (*Views) Submodules added in v0.37.0

func (self *Views) Submodules() *ViewDriver

func (*Views) Suggestions added in v0.37.0

func (self *Views) Suggestions() *ViewDriver

func (*Views) Tags added in v0.37.0

func (self *Views) Tags() *ViewDriver

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL