package evaluator import ( "context" "testing" "time" "github.com/stretchr/testify/assert" ) func TestCustomEvaluator(t *testing.T) { ctx, clearTimeout := context.WithTimeout(context.Background(), time.Second*10) defer clearTimeout() store := NewStore() t.Run("bool deny", func(t *testing.T) { ce := NewCustomEvaluator(store) res, err := ce.Evaluate(ctx, &CustomEvaluatorRequest{ RegoPolicy: ` package pomerium.custom_policy deny = true `, }) if !assert.NoError(t, err) { return } assert.Equal(t, true, res.Denied) assert.Empty(t, res.Reason) }) t.Run("set deny", func(t *testing.T) { ce := NewCustomEvaluator(store) res, err := ce.Evaluate(ctx, &CustomEvaluatorRequest{ RegoPolicy: ` package pomerium.custom_policy deny["test"] = true `, }) if !assert.NoError(t, err) { return } assert.Equal(t, true, res.Denied) assert.Equal(t, "test", res.Reason) }) t.Run("missing package", func(t *testing.T) { ce := NewCustomEvaluator(store) res, err := ce.Evaluate(ctx, &CustomEvaluatorRequest{ RegoPolicy: `allow = true`, }) if !assert.NoError(t, err) { return } assert.NotNil(t, res) }) }