github.com/grafana/pyroscope@v1.18.0/pkg/frontend/vcs/encryption_test.go (about)

     1  package vcs
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/require"
     8  	"golang.org/x/oauth2"
     9  )
    10  
    11  func TestEncodeOAuth(t *testing.T) {
    12  	key := []byte("0123456789abcdef")
    13  	token := &oauth2.Token{
    14  		AccessToken:  "a1b2c3d4e5f6",
    15  		TokenType:    "access_token",
    16  		RefreshToken: "a1b2c3d4e5f6",
    17  		Expiry:       time.Unix(200, 0).UTC(),
    18  	}
    19  	enc, err := encryptToken(token, key)
    20  	require.NoError(t, err)
    21  	require.NotEmpty(t, enc)
    22  	actual, err := decryptToken(enc, key)
    23  	require.NoError(t, err)
    24  	require.Equal(t, token, actual)
    25  }
    26  
    27  func Test_decryptToken(t *testing.T) {
    28  	t.Run("malformed token shorter than nonce size", func(t *testing.T) {
    29  		encoded := "xxxx"
    30  		key := []byte("0123456789abcdef")
    31  
    32  		_, err := decryptToken(encoded, key)
    33  		require.EqualError(t, err, "malformed token")
    34  	})
    35  }