Skip to content

Commit

Permalink
test: improve and adapt commit persistence test-cases
Browse files Browse the repository at this point in the history
  • Loading branch information
AzraelSec committed Jan 21, 2025
1 parent b845553 commit b643d5e
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 15 deletions.
5 changes: 5 additions & 0 deletions pkg/integration/components/commit_description_panel_driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@ func (self *CommitDescriptionPanelDriver) AddCoAuthor(author string) *CommitDesc
return self
}

func (self *CommitDescriptionPanelDriver) Clear() *CommitDescriptionPanelDriver {
self.getViewDriver().Clear()
return self
}

func (self *CommitDescriptionPanelDriver) Title(expected *TextMatcher) *CommitDescriptionPanelDriver {
self.getViewDriver().Title(expected)

Expand Down
15 changes: 1 addition & 14 deletions pkg/integration/components/commit_message_panel_driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,7 @@ func (self *CommitMessagePanelDriver) SwitchToDescription() *CommitDescriptionPa
}

func (self *CommitMessagePanelDriver) Clear() *CommitMessagePanelDriver {
// clearing multiple times in case there's multiple lines
// (the clear button only clears a single line at a time)
maxAttempts := 100
for i := 0; i < maxAttempts+1; i++ {
if self.getViewDriver().getView().Buffer() == "" {
break
}

self.t.press(ClearKey)
if i == maxAttempts {
panic("failed to clear commit message panel")
}
}

self.getViewDriver().Clear()
return self
}

Expand Down
18 changes: 18 additions & 0 deletions pkg/integration/components/view_driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,24 @@ func (self *ViewDriver) Title(expected *TextMatcher) *ViewDriver {
return self
}

func (self *ViewDriver) Clear() *ViewDriver {
// clearing multiple times in case there's multiple lines
// (the clear button only clears a single line at a time)
maxAttempts := 100
for i := 0; i < maxAttempts+1; i++ {
if self.getView().Buffer() == "" {
break
}

self.t.press(ClearKey)
if i == maxAttempts {
panic("failed to clear view buffer")
}
}

return self
}

// 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.
Expand Down
20 changes: 19 additions & 1 deletion pkg/integration/tests/commit/preserve_commit_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,31 @@ var PreserveCommitMessage = NewIntegrationTest(NewIntegrationTestArgs{
Type("second paragraph").
Cancel()

t.FileSystem().PathPresent(".git/LAZYGIT_PENDING_COMMIT")

t.Views().Files().
IsFocused().
Press(keys.Files.CommitChanges)

t.ExpectPopup().CommitMessagePanel().
Content(Equals("my commit message")).
SwitchToDescription().
Content(Equals("first paragraph\n\nsecond paragraph"))
Content(Equals("first paragraph\n\nsecond paragraph")).
Clear().
SwitchToSummary().
Clear().
Cancel()

t.FileSystem().PathNotPresent(".git/LAZYGIT_PENDING_COMMIT")

t.Views().Files().
IsFocused().
Press(keys.Files.CommitChanges)

t.ExpectPopup().CommitMessagePanel().
Type("my new commit message").
Confirm()

t.FileSystem().PathNotPresent(".git/LAZYGIT_PENDING_COMMIT")
},
})

0 comments on commit b643d5e

Please sign in to comment.