@@ -5,8 +5,11 @@ import (
55 "fmt"
66 "net/http"
77 "net/http/httptest"
8+ "net/url"
89 "os"
910 "testing"
11+
12+ "go.opentelemetry.io/otel"
1013)
1114
1215func TestAcquireCredentials (t * testing.T ) {
@@ -36,26 +39,28 @@ func TestAcquireCredentials(t *testing.T) {
3639 t .Errorf ("expected Authorization=Bearer %s; got %s" , bearerToken , r .Header .Get ("Authorization" ))
3740 }
3841
39- fmt .Fprint (w , "credentials" )
42+ fmt .Fprint (w , "{ \" credentials\" : \" api-key \" } " )
4043 }))
4144
4245 defer server .Close ()
4346
4447 // Set the environment variable
4548 os .Setenv ("HASURA_CREDENTIALS_PROVIDER_URI" , server .URL )
4649 os .Setenv ("HASURA_CREDENTIALS_PROVIDER_BEARER_TOKEN" , bearerToken )
50+ defer os .Unsetenv ("HASURA_CREDENTIALS_PROVIDER_URI" )
51+ defer os .Unsetenv ("HASURA_CREDENTIALS_PROVIDER_BEARER_TOKEN" )
4752
4853 credentials , err := AcquireCredentials (context .TODO (), "key" , false )
4954 if err != nil {
5055 t .Errorf ("unexpected error: %v" , err )
5156 }
5257
53- if credentials != "credentials " {
54- t .Errorf ("expected credentials to be 'credentials ', got '%s'" , credentials )
58+ if credentials != "api-key " {
59+ t .Errorf ("expected credentials to be 'api-key ', got '%s'" , credentials )
5560 }
5661 })
5762
58- t .Run ("when the request fails " , func (t * testing.T ) {
63+ t .Run ("when the server does not exist " , func (t * testing.T ) {
5964 os .Setenv ("HASURA_CREDENTIALS_PROVIDER_URI" , "http://localhost:0000" )
6065
6166 _ , err := AcquireCredentials (context .TODO (), "key" , false )
@@ -64,4 +69,28 @@ func TestAcquireCredentials(t *testing.T) {
6469 }
6570 })
6671 })
72+
73+ t .Run ("when the response does not have credentials" , func (t * testing.T ) {
74+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
75+ fmt .Fprint (w , "{}" )
76+ }))
77+
78+ defer server .Close ()
79+
80+ serverUri , err := url .Parse (server .URL )
81+ if err != nil {
82+ t .Fatalf ("unexpected error: %v" , err )
83+ }
84+
85+ client := & CredentialClient {
86+ providerUri : serverUri ,
87+ httpClient : server .Client (),
88+ propagator : otel .GetTextMapPropagator (),
89+ }
90+
91+ _ , err = client .AcquireCredentials (context .TODO (), "key" , false )
92+ if err != errEmptyCredentials {
93+ t .Errorf ("expected an empty credentails error, got: %s\n " , err )
94+ }
95+ })
6796}
0 commit comments