Skip to content
Snippets Groups Projects
Commit 951f1d08 authored by Lyuben Penkovski's avatar Lyuben Penkovski
Browse files

Unit tests for Rego get http header function

parent 4b6cb396
No related branches found
No related tags found
No related merge requests found
package regofunc_test
import (
"context"
"testing"
"github.com/open-policy-agent/opa/rego"
"github.com/stretchr/testify/assert"
"gitlab.com/gaia-x/data-infrastructure-federation-services/tsa/policy/internal/regofunc"
)
func TestGetHeaderFunc(t *testing.T) {
headers := map[string]string{
"Authorization": "Bearer XXX",
"X-Location": "https://example.com",
}
t.Run("get Authorization header", func(t *testing.T) {
r := rego.New(
rego.Query(`external.http.header("Authorization")`),
rego.Function1(regofunc.GetHeaderFunc(headers)),
)
resultSet, err := r.Eval(context.Background())
assert.NoError(t, err)
result := resultSet[0].Expressions[0].Value
assert.NoError(t, err)
assert.Equal(t, "Bearer XXX", result)
})
t.Run("get X-Location header", func(t *testing.T) {
r := rego.New(
rego.Query(`external.http.header("X-Location")`),
rego.Function1(regofunc.GetHeaderFunc(headers)),
)
resultSet, err := r.Eval(context.Background())
assert.NoError(t, err)
result := resultSet[0].Expressions[0].Value
assert.NoError(t, err)
assert.Equal(t, "https://example.com", result)
})
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment