34 lines
1.1 KiB
Go
34 lines
1.1 KiB
Go
package grpcadapter
|
|
|
|
import (
|
|
"context"
|
|
ledgerv1 "gl/gen/ledger/v1"
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/metadata"
|
|
"google.golang.org/grpc/status"
|
|
"testing"
|
|
)
|
|
|
|
func TestAuthorityCommandsRequireOneConfiguredAdministrativeToken(t *testing.T) {
|
|
for _, tc := range []struct {
|
|
name, configured string
|
|
tokens []string
|
|
}{
|
|
{"unconfigured", "", []string{"token"}},
|
|
{"missing", "token", nil},
|
|
{"wrong", "token", []string{"wrong"}},
|
|
{"duplicate", "token", []string{"token", "token"}},
|
|
} {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
handler := NewHandler(nil, nil).WithSettlementAdminToken(tc.configured)
|
|
ctx := metadata.NewIncomingContext(context.Background(), metadata.MD{"x-admin-token": tc.tokens})
|
|
if _, err := handler.SetOperatingMode(ctx, &ledgerv1.SetOperatingModeRequest{}); status.Code(err) != codes.PermissionDenied {
|
|
t.Fatalf("toggle: %v", err)
|
|
}
|
|
if _, err := handler.PostInternalJournal(ctx, &ledgerv1.AppendJournalRequest{}); status.Code(err) != codes.PermissionDenied {
|
|
t.Fatalf("internal posting: %v", err)
|
|
}
|
|
})
|
|
}
|
|
}
|