Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var CheckoutByName = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Try to checkout branch by name. Verify that it also works on the branch with the special name @.", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shell. CreateNCommits(3). NewBranch("@"). Checkout("master"). EmptyCommit("blah") }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Branches(). Focus(). Lines( Contains("master").IsSelected(), Contains("@"), ). SelectNextItem(). Press(keys.Branches.CheckoutBranchByName). Tap(func() { t.ExpectPopup().Prompt().Title(Equals("Branch name:")).Type("new-branch").Confirm() t.ExpectPopup().Alert().Title(Equals("Branch not found")).Content(Equals("Branch not found. Create a new branch named new-branch?")).Confirm() }). Lines( MatchesRegexp(`\*.*new-branch`).IsSelected(), Contains("master"), Contains("@"), ) }, })
View Source
var Delete = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Try to delete the checked out branch first (to no avail), and then delete another branch.", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shell. EmptyCommit("blah"). NewBranch("branch-one"). NewBranch("branch-two") }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Branches(). Focus(). Lines( MatchesRegexp(`\*.*branch-two`).IsSelected(), MatchesRegexp(`branch-one`), MatchesRegexp(`master`), ). Press(keys.Universal.Remove). Tap(func() { t.ExpectPopup().Alert().Title(Equals("Error")).Content(Contains("You cannot delete the checked out branch!")).Confirm() }). SelectNextItem(). Press(keys.Universal.Remove). Tap(func() { t.ExpectPopup().Confirmation(). Title(Equals("Delete Branch")). Content(Contains("Are you sure you want to delete the branch 'branch-one'?")). Confirm() }). Lines( MatchesRegexp(`\*.*branch-two`), MatchesRegexp(`master`).IsSelected(), ) }, })
View Source
var DetachedHead = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Create a new branch on detached head", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shell. CreateNCommits(10). Checkout("HEAD^") }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Branches(). Focus(). Lines( MatchesRegexp(`\*.*HEAD`).IsSelected(), MatchesRegexp(`master`), ). Press(keys.Universal.New) t.ExpectPopup().Prompt(). Title(MatchesRegexp(`^New Branch Name \(Branch is off of '[0-9a-f]+'\)$`)). Type("new-branch"). Confirm() t.Views().Branches(). Lines( MatchesRegexp(`\* new-branch`).IsSelected(), MatchesRegexp(`master`), ) t.Git().CurrentBranchName("new-branch") }, })
View Source
var Rebase = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Rebase onto another branch, deal with the conflicts.", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shared.MergeConflictsSetup(shell) }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Commits().TopLines( Contains("first change"), Contains("original"), ) t.Views().Branches(). Focus(). Lines( Contains("first-change-branch"), Contains("second-change-branch"), Contains("original-branch"), ). SelectNextItem(). Press(keys.Branches.RebaseBranch) t.ExpectPopup().Confirmation(). Title(Equals("Rebasing")). Content(Contains("Are you sure you want to rebase 'first-change-branch' on top of 'second-change-branch'?")). Confirm() t.ExpectPopup().Confirmation(). Title(Equals("Auto-merge failed")). Content(Contains("Conflicts!")). Confirm() t.Views().Files(). IsFocused(). SelectedLine(Contains("file")). PressEnter() t.Views().MergeConflicts(). IsFocused(). PressPrimaryAction() t.Views().Information().Content(Contains("rebasing")) t.ExpectPopup().Confirmation(). Title(Equals("continue")). Content(Contains("all merge conflicts resolved. Continue?")). Confirm() t.Views().Information().Content(DoesNotContain("rebasing")) t.Views().Commits().TopLines( Contains("second-change-branch unrelated change"), Contains("second change"), Contains("original"), ) }, })
View Source
var RebaseAndDrop = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Rebase onto another branch, deal with the conflicts. Also mark a commit to be dropped before continuing.", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shared.MergeConflictsSetup(shell) shell.EmptyCommit("to remove") shell.EmptyCommit("to keep") }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Commits(). TopLines( Contains("to keep"), Contains("to remove"), Contains("first change"), Contains("original"), ) t.Views().Branches(). Focus(). Lines( Contains("first-change-branch").IsSelected(), Contains("second-change-branch"), Contains("original-branch"), ). SelectNextItem(). Press(keys.Branches.RebaseBranch) t.ExpectPopup().Confirmation(). Title(Equals("Rebasing")). Content(Contains("Are you sure you want to rebase 'first-change-branch' on top of 'second-change-branch'?")). Confirm() t.Views().Information().Content(Contains("rebasing")) t.ExpectPopup().Confirmation(). Title(Equals("Auto-merge failed")). Content(Contains("Conflicts!")). Confirm() t.Views().Files().IsFocused(). SelectedLine(MatchesRegexp("UU.*file")) t.Views().Commits(). Focus(). TopLines( MatchesRegexp(`pick.*to keep`).IsSelected(), MatchesRegexp(`pick.*to remove`), MatchesRegexp("YOU ARE HERE.*second-change-branch unrelated change"), MatchesRegexp("second change"), MatchesRegexp("original"), ). SelectNextItem(). Press(keys.Universal.Remove). TopLines( MatchesRegexp(`pick.*to keep`), MatchesRegexp(`drop.*to remove`).IsSelected(), MatchesRegexp("YOU ARE HERE.*second-change-branch unrelated change"), MatchesRegexp("second change"), MatchesRegexp("original"), ) t.Views().Files(). Focus(). PressEnter() t.Views().MergeConflicts(). IsFocused(). PressPrimaryAction() t.ExpectPopup().Confirmation(). Title(Equals("continue")). Content(Contains("all merge conflicts resolved. Continue?")). Confirm() t.Views().Information().Content(DoesNotContain("rebasing")) t.Views().Commits().TopLines( Contains("to keep"), Contains("second-change-branch unrelated change").IsSelected(), Contains("second change"), Contains("original"), ) }, })
View Source
var Reset = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Hard reset to another branch", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shell.NewBranch("current-branch") shell.EmptyCommit("root commit") shell.NewBranch("other-branch") shell.EmptyCommit("other-branch commit") shell.Checkout("current-branch") shell.EmptyCommit("current-branch commit") }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Commits().Lines( Contains("current-branch commit"), Contains("root commit"), ) t.Views().Branches(). Focus(). Lines( Contains("current-branch").IsSelected(), Contains("other-branch"), ). SelectNextItem(). Press(keys.Commits.ViewResetOptions) t.ExpectPopup().Menu(). Title(Contains("reset to other-branch")). Select(Contains("hard reset")). Confirm() t.Views().Commits(). Lines( Contains("other-branch commit"), Contains("root commit"), ) }, })
View Source
var Suggestions = NewIntegrationTest(NewIntegrationTestArgs{ Description: "Checking out a branch with name suggestions", ExtraCmdArgs: "", Skip: false, SetupConfig: func(config *config.AppConfig) {}, SetupRepo: func(shell *Shell) { shell. EmptyCommit("my commit message"). NewBranch("new-branch"). NewBranch("new-branch-2"). NewBranch("new-branch-3"). NewBranch("branch-to-checkout"). NewBranch("other-new-branch-2"). NewBranch("other-new-branch-3") }, Run: func(t *TestDriver, keys config.KeybindingConfig) { t.Views().Branches(). Focus(). Press(keys.Branches.CheckoutBranchByName) t.ExpectPopup().Prompt(). Title(Equals("Branch name:")). Type("branch-to"). SuggestionTopLines(Contains("branch-to-checkout")). ConfirmFirstSuggestion() t.Git().CurrentBranchName("branch-to-checkout") }, })
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.