%PDF- %PDF-
| Direktori : /home/opti/workflow/node_modules/aws-sdk/test/ |
| Current File : /home/opti/workflow/node_modules/aws-sdk/test/credential_provider_chain.spec.coffee |
helpers = require('./helpers')
AWS = helpers.AWS
if AWS.util.isNode()
describe 'AWS.CredentialProviderChain', ->
describe 'resolve', ->
chain = null
defaultProviders = AWS.CredentialProviderChain.defaultProviders
beforeEach ->
process.env = {}
chain = new AWS.CredentialProviderChain [
-> new AWS.EnvironmentCredentials('AWS'),
-> new AWS.EnvironmentCredentials('AMAZON')
]
afterEach ->
AWS.CredentialProviderChain.defaultProviders = defaultProviders
it 'returns an error by default', ->
chain.resolve (err) ->
expect(err.message).toEqual('Variable AMAZON_ACCESS_KEY_ID not set.')
it 'returns AWS-prefixed credentials found in ENV', ->
process.env['AWS_ACCESS_KEY_ID'] = 'akid'
process.env['AWS_SECRET_ACCESS_KEY'] = 'secret'
process.env['AWS_SESSION_TOKEN'] = 'session'
chain.resolve (err, creds) ->
expect(creds.accessKeyId).toEqual('akid')
expect(creds.secretAccessKey).toEqual('secret')
expect(creds.sessionToken).toEqual('session')
it 'returns AMAZON-prefixed credentials found in ENV', ->
process.env['AMAZON_ACCESS_KEY_ID'] = 'akid'
process.env['AMAZON_SECRET_ACCESS_KEY'] = 'secret'
process.env['AMAZON_SESSION_TOKEN'] = 'session'
chain.resolve (err, creds) ->
expect(creds.accessKeyId).toEqual('akid')
expect(creds.secretAccessKey).toEqual('secret')
expect(creds.sessionToken).toEqual('session')
it 'prefers AWS credentials to AMAZON credentials', ->
process.env['AWS_ACCESS_KEY_ID'] = 'akid'
process.env['AWS_SECRET_ACCESS_KEY'] = 'secret'
process.env['AWS_SESSION_TOKEN'] = 'session'
process.env['AMAZON_ACCESS_KEY_ID'] = 'akid2'
process.env['AMAZON_SECRET_ACCESS_KEY'] = 'secret2'
process.env['AMAZON_SESSION_TOKEN'] = 'session2'
chain.resolve (err, creds) ->
expect(creds.accessKeyId).toEqual('akid')
expect(creds.secretAccessKey).toEqual('secret')
expect(creds.sessionToken).toEqual('session')
it 'uses the defaultProviders property on the constructor', ->
# remove default providers
AWS.CredentialProviderChain.defaultProviders = []
# these should now get ignored
process.env['AWS_ACCESS_KEY_ID'] = 'akid'
process.env['AWS_SECRET_ACCESS_KEY'] = 'secret'
process.env['AWS_SESSION_TOKEN'] = 'session'
chain = new AWS.CredentialProviderChain()
chain.resolve (err) ->
expect(err.message).toEqual('No providers')
it 'calls resolve on each provider in the chain, stopping for akid', ->
staticCreds = accessKeyId: 'abc', secretAccessKey: 'xyz'
chain = new AWS.CredentialProviderChain([staticCreds])
chain.resolve (err, creds) ->
expect(creds.accessKeyId).toEqual('abc')
expect(creds.secretAccessKey).toEqual('xyz')
expect(creds.sessionToken).toEqual(undefined)
it 'accepts providers as functions, elavuating them during resolution', ->
provider = ->
accessKeyId: 'abc', secretAccessKey: 'xyz'
chain = new AWS.CredentialProviderChain([provider])
chain.resolve (err, creds) ->
expect(creds.accessKeyId).toEqual('abc')
expect(creds.secretAccessKey).toEqual('xyz')
expect(creds.sessionToken).toEqual(undefined)