olivetin/service/internal/webhooks/matcher_justification_test.go

37 lines
965 B
Go

package webhooks
import (
"net/http"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
config "github.com/OliveTin/OliveTin/internal/config"
)
func TestExtractJustificationFromWebhookBody(t *testing.T) {
body := []byte(`{"message":"deploy production","repo":"my-app"}`)
req, err := http.NewRequest(http.MethodPost, "/webhooks/deploy", nil)
require.NoError(t, err)
matcher := NewWebhookMatcher(config.WebhookConfig{
Justification: "$.message",
}, req, body)
value, err := matcher.ExtractJustification()
require.NoError(t, err)
assert.Equal(t, "deploy production", value)
}
func TestExtractJustificationEmptyWhenNotConfigured(t *testing.T) {
req, err := http.NewRequest(http.MethodPost, "/webhooks/deploy", nil)
require.NoError(t, err)
matcher := NewWebhookMatcher(config.WebhookConfig{}, req, []byte(`{}`))
value, err := matcher.ExtractJustification()
require.NoError(t, err)
assert.Empty(t, value)
}