@@ -10,11 +10,13 @@ import (
1010 "github.com/google/go-cmp/cmp"
1111 athenaclientmock "github.com/grafana/athena-datasource/pkg/athena/api/mock"
1212 "github.com/grafana/athena-datasource/pkg/athena/models"
13+ "github.com/grafana/grafana-aws-sdk/pkg/awsauth"
1314 "github.com/grafana/grafana-aws-sdk/pkg/awsds"
1415 "github.com/grafana/grafana-aws-sdk/pkg/sql/api"
1516 "github.com/grafana/grafana-plugin-sdk-go/backend"
1617 "github.com/grafana/sqlds/v5"
1718 "github.com/stretchr/testify/assert"
19+ "github.com/stretchr/testify/require"
1820)
1921
2022func TestConnection_Execute (t * testing.T ) {
@@ -199,6 +201,37 @@ func TestConnection_ListColumnsForTable(t *testing.T) {
199201 }
200202}
201203
204+ type spyConfigProvider struct {
205+ captured awsauth.Settings
206+ }
207+
208+ func (s * spyConfigProvider ) GetConfig (_ context.Context , settings awsauth.Settings ) (aws.Config , error ) {
209+ s .captured = settings
210+ return aws.Config {}, nil
211+ }
212+
213+ func TestNew_passesSessionToken (t * testing.T ) {
214+ spy := & spyConfigProvider {}
215+ origProvider := newAWSConfigProvider
216+ newAWSConfigProvider = func () awsauth.ConfigProvider { return spy }
217+ t .Cleanup (func () { newAWSConfigProvider = origProvider })
218+
219+ s := & models.AthenaDataSourceSettings {}
220+ err := s .Load (backend.DataSourceInstanceSettings {
221+ JSONData : []byte (`{"authType": "keys", "defaultRegion": "us-east-1"}` ),
222+ DecryptedSecureJSONData : map [string ]string {
223+ "accessKey" : "AKIAIOSFODNN7EXAMPLE" ,
224+ "secretKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" ,
225+ "sessionToken" : "AQoDYXdzEJr//test-session-token" ,
226+ },
227+ })
228+ require .NoError (t , err )
229+
230+ _ , err = New (context .Background (), s )
231+ require .NoError (t , err )
232+ assert .Equal (t , "AQoDYXdzEJr//test-session-token" , spy .captured .SessionToken )
233+ }
234+
202235func Test_WorkgroupEngineSupportsResultReuse (t * testing.T ) {
203236 assert .True (t , workgroupEngineSupportsResultReuse ("Athena engine version 3" ))
204237 assert .False (t , workgroupEngineSupportsResultReuse ("Athena engine version 2" ))
0 commit comments