github.com/livekit/protocol@v1.16.1-0.20240517185851-47e4c6bba773/auth/provider_test.go (about)

     1  // Copyright 2023 LiveKit, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package auth_test
    16  
    17  import (
    18  	"os"
    19  	"testing"
    20  
    21  	"github.com/stretchr/testify/assert"
    22  	"github.com/stretchr/testify/require"
    23  
    24  	"github.com/livekit/protocol/auth"
    25  )
    26  
    27  func TestFileBasedKeyProvider(t *testing.T) {
    28  	keys := map[string]string{
    29  		"key1": "secret1",
    30  		"key2": "secret2",
    31  		"key3": "secret3",
    32  	}
    33  	f, err := os.CreateTemp("", "keyfile")
    34  	assert.NoError(t, err)
    35  	defer func() {
    36  		os.Remove(f.Name())
    37  	}()
    38  
    39  	f.WriteString("key1: secret1\n")
    40  	f.WriteString("key2: secret2 \r\n")
    41  	f.WriteString("\n")
    42  	f.WriteString("key3: secret3")
    43  
    44  	f.Close()
    45  
    46  	r, err := os.Open(f.Name())
    47  	require.NoError(t, err)
    48  	defer r.Close()
    49  	p, err := auth.NewFileBasedKeyProviderFromReader(r)
    50  	assert.NoError(t, err)
    51  
    52  	for key, val := range keys {
    53  		assert.Equal(t, val, p.GetSecret(key))
    54  	}
    55  }