Skip to content

Commit 392edda

Browse files
authored
Merge pull request #63 from szuecs/token-source-tests
Add unit tests for PCS token source and injector
2 parents 2f815d2 + 81814ca commit 392edda

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

auth/tokens_test.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package auth
2+
3+
import (
4+
"fmt"
5+
"io"
6+
"net/http"
7+
"net/http/httptest"
8+
"os"
9+
"path/filepath"
10+
"testing"
11+
12+
"github.com/stretchr/testify/assert"
13+
"github.com/stretchr/testify/require"
14+
"golang.org/x/oauth2"
15+
)
16+
17+
func TestPlatformCredentialsTokenSource(t *testing.T) {
18+
tempDir, err := os.MkdirTemp("", "credentials")
19+
require.NoError(t, err)
20+
defer os.RemoveAll(tempDir)
21+
22+
tempFile := filepath.Join(tempDir, "my-app-token-secret")
23+
err = os.WriteFile(tempFile, []byte("the-token"), 0400)
24+
require.NoError(t, err)
25+
26+
tokenSource := NewPlatformCredentialsTokenSource("my-app", tempDir)
27+
28+
token, err := tokenSource.Token()
29+
require.NoError(t, err)
30+
31+
assert.Equal(t, "the-token", token.AccessToken)
32+
}
33+
34+
func TestTokenInjector(t *testing.T) {
35+
tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: "the-token"})
36+
http.DefaultTransport = TokenInjector(tokenSource)(http.DefaultTransport)
37+
38+
svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
39+
fmt.Fprint(w, r.Header.Get("Authorization"))
40+
}))
41+
defer svr.Close()
42+
43+
res, err := http.Get(svr.URL)
44+
require.NoError(t, err)
45+
defer res.Body.Close()
46+
47+
out, err := io.ReadAll(res.Body)
48+
require.NoError(t, err)
49+
50+
assert.Equal(t, "Bearer the-token", string(out))
51+
}

0 commit comments

Comments
 (0)