...

Source file src/edge-infra.dev/pkg/edge/client/transport_test.go

Documentation: edge-infra.dev/pkg/edge/client

     1  package client
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"net/http/httptest"
     7  	"strings"
     8  	"testing"
     9  
    10  	"edge-infra.dev/pkg/edge/api/totp"
    11  
    12  	assertAPI "github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestNewBearerClient(t *testing.T) {
    16  	assert := assertAPI.New(t)
    17  	version := "v1"
    18  	token := "test-token"
    19  
    20  	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    21  		auth := r.Header.Get(Authorization)
    22  		assert.Equal(auth, "bearer "+token)
    23  		assert.Equal(r.Header.Get(EdgeVersion), version)
    24  
    25  		w.WriteHeader(200)
    26  	}))
    27  
    28  	headers := make(map[string]string)
    29  	headers[Authorization] = fmt.Sprintf("%s %s", BearerToken, token)
    30  	headers[EdgeVersion] = version
    31  	client := NewTokenClient(headers)
    32  	_, err := client.Get(server.URL)
    33  	assert.NoError(err)
    34  }
    35  
    36  func TestNewTotpClient(t *testing.T) {
    37  	assert := assertAPI.New(t)
    38  	totpSecret := "abcdefghij"
    39  	version := "v1"
    40  	token, err := totp.GenerateTotp(totpSecret)
    41  	assert.NoError(err)
    42  
    43  	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    44  		auth := r.Header.Get(Authorization)
    45  		assert.Equal(auth, "totp "+token.Code)
    46  		assert.Equal(r.Header.Get(EdgeVersion), version)
    47  
    48  		token := strings.Split(auth, " ")[1]
    49  		assert.NoError(totp.ValidateTotpToken(token, totpSecret))
    50  
    51  		w.WriteHeader(200)
    52  	}))
    53  
    54  	headers := make(map[string]string)
    55  	headers[Authorization] = fmt.Sprintf("%s %s", TotpToken, token.Code)
    56  	headers[EdgeVersion] = version
    57  	client := NewTokenClient(headers)
    58  	_, err = client.Get(server.URL)
    59  	assert.NoError(err)
    60  }
    61  

View as plain text