feat: edit commit message after merging through PR (#43)

Closes #5
This commit is contained in:
Julian Tölle 2024-09-06 23:17:06 +02:00 committed by GitHub
parent 36a0b90bcd
commit 2effe5e72d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 420 additions and 40 deletions

View file

@ -39,7 +39,7 @@ func Format(input string) (string, error) {
return buf.String(), nil
}
func GetCodeBlockText(source []byte, language string, output *string) gast.Walker {
func GetCodeBlockText(source []byte, language string, output *string, found *bool) gast.Walker {
return func(n gast.Node, entering bool) (gast.WalkStatus, error) {
if !entering {
return gast.WalkContinue, nil
@ -56,6 +56,9 @@ func GetCodeBlockText(source []byte, language string, output *string) gast.Walke
}
*output = textFromLines(source, codeBlock)
if found != nil {
*found = true
}
// Stop looking after we find the first result
return gast.WalkStop, nil
}

View file

@ -51,10 +51,11 @@ func TestGetCodeBlockText(t *testing.T) {
language string
}
tests := []struct {
name string
args args
want string
wantErr assert.ErrorAssertionFunc
name string
args args
wantText string
wantFound bool
wantErr assert.ErrorAssertionFunc
}{
{
name: "no code block",
@ -62,8 +63,9 @@ func TestGetCodeBlockText(t *testing.T) {
source: []byte("# Foo"),
language: "missing",
},
want: "",
wantErr: assert.NoError,
wantText: "",
wantFound: false,
wantErr: assert.NoError,
},
{
name: "code block",
@ -71,8 +73,9 @@ func TestGetCodeBlockText(t *testing.T) {
source: []byte("```test\nContent\n```"),
language: "test",
},
want: "Content",
wantErr: assert.NoError,
wantText: "Content",
wantFound: true,
wantErr: assert.NoError,
},
{
name: "code block with other language",
@ -80,8 +83,9 @@ func TestGetCodeBlockText(t *testing.T) {
source: []byte("```unknown\nContent\n```"),
language: "test",
},
want: "",
wantErr: assert.NoError,
wantText: "",
wantFound: false,
wantErr: assert.NoError,
},
{
name: "multiple code blocks with different languages",
@ -89,8 +93,9 @@ func TestGetCodeBlockText(t *testing.T) {
source: []byte("```unknown\nContent\n```\n\n```test\n1337\n```"),
language: "test",
},
want: "1337",
wantErr: assert.NoError,
wantText: "1337",
wantFound: true,
wantErr: assert.NoError,
},
{
name: "multiple code blocks with same language returns first one",
@ -98,22 +103,25 @@ func TestGetCodeBlockText(t *testing.T) {
source: []byte("```test\nContent\n```\n\n```test\n1337\n```"),
language: "test",
},
want: "Content",
wantErr: assert.NoError,
wantText: "Content",
wantFound: true,
wantErr: assert.NoError,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var got string
var gotText string
var gotFound bool
err := WalkAST(tt.args.source,
GetCodeBlockText(tt.args.source, tt.args.language, &got),
GetCodeBlockText(tt.args.source, tt.args.language, &gotText, &gotFound),
)
if !tt.wantErr(t, err) {
return
}
assert.Equal(t, tt.want, got)
assert.Equal(t, tt.wantText, gotText)
assert.Equal(t, tt.wantFound, gotFound)
})
}
}