mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-21 12:16:54 +02:00
Use Equals instead of Contains for asserting the status view content. This solves the problem that we might assert Contains("↓2 repo"), but what it really shows is "↑1↓2 repo", and the test still succeeds. At best this is confusing. Also, this way we don't have to use the awkward DoesNotContain to check that it really doesn't show a checkmark. To do this, we need to fix two whitespace problems: - there was always a space at the end for no reason. Simply remove it. It was added in efb51eee96, but from looking at that diff it seems it was added accidentally. - there was a space at the beginning if the branch status was empty. This is actually a cosmetic problem, for branches without a status the text was indented by once space. Change this so that the space is added conditionally. It's a bit awkward that we have to use Decolorise here, but this will go away again later in this branch.
75 lines
1.9 KiB
Go
75 lines
1.9 KiB
Go
package sync
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var PushWithCredentialPrompt = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Push a commit to a pre-configured upstream, where credentials are required",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupConfig: func(config *config.AppConfig) {
|
|
},
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.EmptyCommit("one")
|
|
|
|
shell.CloneIntoRemote("origin")
|
|
|
|
shell.SetBranchUpstream("master", "origin/master")
|
|
|
|
shell.EmptyCommit("two")
|
|
|
|
// actually getting a password prompt is tricky: it requires SSH'ing into localhost under a newly created, restricted, user.
|
|
// This is not easy to do in a cross-platform way, nor is it easy to do in a docker container.
|
|
// If you can think of a way to do it, please let me know!
|
|
shell.CopyHelpFile("pre-push", ".git/hooks/pre-push")
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Status().Content(Equals("↑1 repo → master"))
|
|
|
|
t.Views().Files().
|
|
IsFocused().
|
|
Press(keys.Universal.Push)
|
|
|
|
// correct credentials are: username=username, password=password
|
|
|
|
t.ExpectPopup().Prompt().
|
|
Title(Equals("Username")).
|
|
Type("username").
|
|
Confirm()
|
|
|
|
// enter incorrect password
|
|
t.ExpectPopup().Prompt().
|
|
Title(Equals("Password")).
|
|
Type("incorrect password").
|
|
Confirm()
|
|
|
|
t.ExpectPopup().Alert().
|
|
Title(Equals("Error")).
|
|
Content(Contains("incorrect username/password")).
|
|
Confirm()
|
|
|
|
t.Views().Status().Content(Equals("↑1 repo → master"))
|
|
|
|
// try again with correct password
|
|
t.Views().Files().
|
|
IsFocused().
|
|
Press(keys.Universal.Push)
|
|
|
|
t.ExpectPopup().Prompt().
|
|
Title(Equals("Username")).
|
|
Type("username").
|
|
Confirm()
|
|
|
|
t.ExpectPopup().Prompt().
|
|
Title(Equals("Password")).
|
|
Type("password").
|
|
Confirm()
|
|
|
|
t.Views().Status().Content(Equals("✓ repo → master"))
|
|
|
|
assertSuccessfullyPushed(t)
|
|
},
|
|
})
|