Files
grafana/pkg/components/apikeygen/apikeygen_test.go
Matheus Macabu 3539764008 Hackaton: Add more unit tests, take 3 (#101525)
* 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
2025-03-05 08:00:12 +01:00

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)
}