Fix bug with not accepting newlines (#12)

Prior to this PR, if there was a newline (or multiple newline
characters) at the end of the keyword then it wouldn't match. With this
fix any number of newlines at the end of the keyword match will now be
considered for approve or deny.
This commit is contained in:
Thomas Stringer 2022-05-25 19:47:51 -04:00 committed by GitHub
parent c4d4c8098f
commit 75c263a9f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 1 deletions

View file

@ -126,7 +126,7 @@ func approversIndex(approvers []string, name string) int {
func isApproved(commentBody string) (bool, error) {
for _, approvedWord := range approvedWords {
matched, err := regexp.MatchString(fmt.Sprintf("(?i)^%s[.!]?$", approvedWord), commentBody)
matched, err := regexp.MatchString(fmt.Sprintf("(?i)^%s[.!]*\n*$", approvedWord), commentBody)
if err != nil {
return false, err
}

View file

@ -215,6 +215,11 @@ func TestApprovedCommentBody(t *testing.T) {
commentBody: "Approved!",
isSuccess: true,
},
{
name: "approved_titlecase_multi_exclamation",
commentBody: "Approved!!",
isSuccess: true,
},
{
name: "approved_titlecase_question",
commentBody: "Approved?",
@ -230,6 +235,21 @@ func TestApprovedCommentBody(t *testing.T) {
commentBody: "this is just some random comment",
isSuccess: false,
},
{
name: "approved_with_newline",
commentBody: "approved\n",
isSuccess: true,
},
{
name: "approved_with_exclamation_newline",
commentBody: "approved!\n",
isSuccess: true,
},
{
name: "approved_with_multi_exclamation_multi_newline",
commentBody: "approved!!!\n\n\n",
isSuccess: true,
},
}
for _, testCase := range testCases {