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 }