mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 04:52:10 +08:00

* serviceaccounts/secretscan: test Service more thoroughly * middleware/cookies: add tests for CookieOptions * anonymous/anonimpl: cover a couple more methods * components/imguploader: Implement WebDAV integration tests * components/apikeygen: also check IsValid method * bus: cover invalid callback signature cases * cloudmigration/objectstorage: add basic unit tests * login/social/connectors: add test case for GitHub OAuth fetch emails+orgs * expr/classic: cover more evaluator types in tests
30 lines
640 B
Go
30 lines
640 B
Go
package apikeygen
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/grafana/grafana/pkg/util"
|
|
)
|
|
|
|
func TestApiKeyGen(t *testing.T) {
|
|
result, err := New(12, "Cool key")
|
|
require.NoError(t, err)
|
|
|
|
assert.NotEmpty(t, result.ClientSecret)
|
|
assert.NotEmpty(t, result.HashedKey)
|
|
|
|
keyInfo, err := Decode(result.ClientSecret)
|
|
require.NoError(t, err)
|
|
|
|
keyHashed, err := util.EncodePassword(keyInfo.Key, keyInfo.Name)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, result.HashedKey, keyHashed)
|
|
|
|
valid, err := IsValid(keyInfo, keyHashed)
|
|
require.NoError(t, err)
|
|
require.True(t, valid)
|
|
}
|