diff --git a/pkg/integration/components/commit_message_panel_asserter.go b/pkg/integration/components/commit_message_panel_asserter.go new file mode 100644 index 000000000..f7923282e --- /dev/null +++ b/pkg/integration/components/commit_message_panel_asserter.go @@ -0,0 +1,41 @@ +package components + +type CommitMessagePanelAsserter struct { + assert *Assert + input *Input +} + +func (self *CommitMessagePanelAsserter) getViewAsserter() *ViewAsserter { + return self.assert.View("commitMessage") +} + +// asserts on the text initially present in the prompt +func (self *CommitMessagePanelAsserter) InitialText(expected *matcher) *CommitMessagePanelAsserter { + self.getViewAsserter().Content(expected) + + return self +} + +func (self *CommitMessagePanelAsserter) Type(value string) *CommitMessagePanelAsserter { + self.input.Type(value) + + return self +} + +func (self *CommitMessagePanelAsserter) AddNewline() *CommitMessagePanelAsserter { + self.input.Press(self.input.keys.Universal.AppendNewline) + + return self +} + +func (self *CommitMessagePanelAsserter) Clear() *CommitMessagePanelAsserter { + panic("Clear method not yet implemented!") +} + +func (self *CommitMessagePanelAsserter) Confirm() { + self.input.Confirm() +} + +func (self *CommitMessagePanelAsserter) Cancel() { + self.input.Press(self.input.keys.Universal.Return) +} diff --git a/pkg/integration/components/input.go b/pkg/integration/components/input.go index 91048dfb7..c5d808588 100644 --- a/pkg/integration/components/input.go +++ b/pkg/integration/components/input.go @@ -238,3 +238,9 @@ func (self *Input) Menu() *MenuAsserter { return &MenuAsserter{assert: self.assert, input: self} } + +func (self *Input) CommitMessagePanel() *CommitMessagePanelAsserter { + self.assert.InCommitMessagePanel() + + return &CommitMessagePanelAsserter{assert: self.assert, input: self} +} diff --git a/pkg/integration/tests/commit/commit.go b/pkg/integration/tests/commit/commit.go index a20b0df34..cda9f63e0 100644 --- a/pkg/integration/tests/commit/commit.go +++ b/pkg/integration/tests/commit/commit.go @@ -22,10 +22,9 @@ var Commit = NewIntegrationTest(NewIntegrationTestArgs{ input.PrimaryAction() input.Press(keys.Files.CommitChanges) - assert.InCommitMessagePanel() commitMessage := "my commit message" - input.Type(commitMessage) - input.Confirm() + + input.CommitMessagePanel().Type(commitMessage).Confirm() assert.CommitCount(1) assert.HeadCommitMessage(Equals(commitMessage)) diff --git a/pkg/integration/tests/commit/commit_multiline.go b/pkg/integration/tests/commit/commit_multiline.go index d19e09a72..4d6ba883a 100644 --- a/pkg/integration/tests/commit/commit_multiline.go +++ b/pkg/integration/tests/commit/commit_multiline.go @@ -19,12 +19,7 @@ var CommitMultiline = NewIntegrationTest(NewIntegrationTestArgs{ input.PrimaryAction() input.Press(keys.Files.CommitChanges) - assert.InCommitMessagePanel() - input.Type("first line") - input.Press(keys.Universal.AppendNewline) - input.Press(keys.Universal.AppendNewline) - input.Type("third line") - input.Confirm() + input.CommitMessagePanel().Type("first line").AddNewline().AddNewline().Type("third line").Confirm() assert.CommitCount(1) assert.HeadCommitMessage(Equals("first line")) diff --git a/pkg/integration/tests/commit/staged_without_hooks.go b/pkg/integration/tests/commit/staged_without_hooks.go index e2f0752f0..95fa72e7e 100644 --- a/pkg/integration/tests/commit/staged_without_hooks.go +++ b/pkg/integration/tests/commit/staged_without_hooks.go @@ -40,11 +40,9 @@ var StagedWithoutHooks = NewIntegrationTest(NewIntegrationTestArgs{ assert.View("staging").Content(Contains("+myfile content").DoesNotContain("+with a second line")) input.Press(keys.Files.CommitChangesWithoutHook) - assert.InCommitMessagePanel() - assert.CurrentView().Content(Contains("WIP")) + commitMessage := ": my commit message" - input.Type(commitMessage) - input.Confirm() + input.CommitMessagePanel().InitialText(Contains("WIP")).Type(commitMessage).Confirm() assert.CommitCount(1) assert.HeadCommitMessage(Equals("WIP" + commitMessage)) diff --git a/pkg/integration/tests/commit/unstaged.go b/pkg/integration/tests/commit/unstaged.go index 6e7e2a307..f46c06a87 100644 --- a/pkg/integration/tests/commit/unstaged.go +++ b/pkg/integration/tests/commit/unstaged.go @@ -30,10 +30,9 @@ var Unstaged = NewIntegrationTest(NewIntegrationTestArgs{ assert.View("stagingSecondary").Content(Contains("+myfile content")) input.Press(keys.Files.CommitChanges) - assert.InCommitMessagePanel() + commitMessage := "my commit message" - input.Type(commitMessage) - input.Confirm() + input.CommitMessagePanel().Type(commitMessage).Confirm() assert.CommitCount(1) assert.HeadCommitMessage(Equals(commitMessage))