24f91d9077
* copyright headers for agent folder * Ignore test data files * fix proto files and remove headers in agent/uiserver folder * ignore deep-copy files * copyright headers for agent folder * fix merge conflicts * copyright headers for agent folder * Ignore test data files * fix proto files * ignore agent/uiserver folder for now * copyright headers for agent folder * Add copyright headers for acl, api and bench folders
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package acl
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestPermissionDeniedError(t *testing.T) {
|
|
type testCase struct {
|
|
err PermissionDeniedError
|
|
expected string
|
|
}
|
|
|
|
testName := func(t testCase) string {
|
|
return t.expected
|
|
}
|
|
|
|
auth1 := MockAuthorizer{}
|
|
auth2 := AllowAuthorizer{nil, AnonymousTokenID}
|
|
|
|
cases := []testCase{
|
|
{
|
|
err: PermissionDeniedError{},
|
|
expected: "Permission denied",
|
|
},
|
|
{
|
|
err: PermissionDeniedError{Cause: "simon says"},
|
|
expected: "Permission denied: simon says",
|
|
},
|
|
{
|
|
err: PermissionDeniedByACL(&auth1, nil, ResourceService, AccessRead, "foobar"),
|
|
expected: "Permission denied: token with AccessorID '' lacks permission 'service:read' on \"foobar\"",
|
|
},
|
|
{
|
|
err: PermissionDeniedByACLUnnamed(&auth1, nil, ResourceService, AccessRead),
|
|
expected: "Permission denied: token with AccessorID '' lacks permission 'service:read'",
|
|
},
|
|
{
|
|
err: PermissionDeniedByACLUnnamed(auth2, nil, ResourceService, AccessRead),
|
|
expected: "Permission denied: anonymous token lacks permission 'service:read'. The anonymous token is used implicitly when a request does not specify a token.",
|
|
},
|
|
}
|
|
|
|
for _, tcase := range cases {
|
|
t.Run(testName(tcase), func(t *testing.T) {
|
|
require.Error(t, tcase.err)
|
|
require.Equal(t, tcase.expected, tcase.err.Error())
|
|
})
|
|
}
|
|
}
|