2023-02-25 13:08:45 +11:00
package patch_building
import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)
var MoveToIndexPartial = NewIntegrationTest ( NewIntegrationTestArgs {
Description : "Move a patch from a commit to the index. This is different from the MoveToIndex test in that we're only selecting a partial patch from a file" ,
ExtraCmdArgs : "" ,
Skip : false ,
SetupConfig : func ( config * config . AppConfig ) { } ,
SetupRepo : func ( shell * Shell ) {
shell . CreateFileAndAdd ( "file1" , "first line\nsecond line\nthird line\n" )
shell . Commit ( "first commit" )
shell . UpdateFileAndAdd ( "file1" , "first line2\nsecond line\nthird line2\n" )
shell . Commit ( "second commit" )
shell . CreateFileAndAdd ( "file2" , "file1 content" )
shell . Commit ( "third commit" )
} ,
Run : func ( t * TestDriver , keys config . KeybindingConfig ) {
t . Views ( ) . Commits ( ) .
Focus ( ) .
Lines (
Contains ( "third commit" ) . IsSelected ( ) ,
Contains ( "second commit" ) ,
Contains ( "first commit" ) ,
) .
2023-02-26 11:49:15 +11:00
NavigateToLine ( Contains ( "second commit" ) ) .
2023-02-25 13:08:45 +11:00
PressEnter ( )
t . Views ( ) . CommitFiles ( ) .
IsFocused ( ) .
Lines (
Contains ( "file1" ) . IsSelected ( ) ,
) .
PressEnter ( )
t . Views ( ) . PatchBuilding ( ) .
IsFocused ( ) .
ContainsLines (
Contains ( ` -first line ` ) . IsSelected ( ) ,
Contains ( ` +first line2 ` ) ,
Contains ( ` second line ` ) ,
Contains ( ` -third line ` ) ,
Contains ( ` +third line2 ` ) ,
) .
PressPrimaryAction ( ) .
SelectNextItem ( ) .
PressPrimaryAction ( ) .
Tap ( func ( ) {
t . Views ( ) . Information ( ) . Content ( Contains ( "building patch" ) )
t . Views ( ) . PatchBuildingSecondary ( ) .
ContainsLines (
Contains ( ` -first line ` ) ,
Contains ( ` +first line2 ` ) ,
Contains ( ` second line ` ) ,
Contains ( ` third line ` ) ,
)
2023-02-26 11:49:15 +11:00
t . Common ( ) . SelectPatchOption ( Contains ( "move patch out into index" ) )
2023-02-25 13:08:45 +11:00
t . Views ( ) . Files ( ) .
Lines (
Contains ( "M" ) . Contains ( "file1" ) ,
)
} )
// Focus is automatically returned to the commit files panel. Arguably it shouldn't be.
t . Views ( ) . CommitFiles ( ) .
IsFocused ( ) .
Lines (
Contains ( "file1" ) ,
)
t . Views ( ) . Main ( ) .
ContainsLines (
Contains ( ` first line ` ) ,
Contains ( ` second line ` ) ,
Contains ( ` -third line ` ) ,
Contains ( ` +third line2 ` ) ,
)
t . Views ( ) . Files ( ) .
Focus ( )
t . Views ( ) . Main ( ) .
ContainsLines (
Contains ( ` -first line ` ) ,
Contains ( ` +first line2 ` ) ,
Contains ( ` second line ` ) ,
Contains ( ` third line2 ` ) ,
)
} ,
} )