code.gitea.io/gitea@v1.22.3/modules/generate/generate_test.go (about)

     1  // Copyright 2024 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package generate
     5  
     6  import (
     7  	"encoding/base64"
     8  	"strings"
     9  	"testing"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestDecodeJwtSecretBase64(t *testing.T) {
    15  	_, err := DecodeJwtSecretBase64("abcd")
    16  	assert.ErrorContains(t, err, "invalid base64 decoded length")
    17  	_, err = DecodeJwtSecretBase64(strings.Repeat("a", 64))
    18  	assert.ErrorContains(t, err, "invalid base64 decoded length")
    19  
    20  	str32 := strings.Repeat("x", 32)
    21  	encoded32 := base64.RawURLEncoding.EncodeToString([]byte(str32))
    22  	decoded32, err := DecodeJwtSecretBase64(encoded32)
    23  	assert.NoError(t, err)
    24  	assert.Equal(t, str32, string(decoded32))
    25  }
    26  
    27  func TestNewJwtSecretWithBase64(t *testing.T) {
    28  	secret, encoded, err := NewJwtSecretWithBase64()
    29  	assert.NoError(t, err)
    30  	assert.Len(t, secret, 32)
    31  	decoded, err := DecodeJwtSecretBase64(encoded)
    32  	assert.NoError(t, err)
    33  	assert.Equal(t, secret, decoded)
    34  }