Check for the roleArn attribute on ini file loaded credentials. If that exists, then asynchronous (assume role) credentials are being loaded but they may not yet be received. Accept these as valid credentials and use the containing credentials object as the current credentials object.
Clean up the test data (fakeCredentials didn't need so much)
Create a test that verifies the async credential loading functionality
Create a test that ensures a non-existent profile one attempts to load does not load any credentials
Bump the version of the aws-sdk so that the modified aws-sdk will be demanded for proper handling of this feature.
Merge fixes from both #2373 & #2695, adding editorial suggestions and future-proofing them a bit (probably)
Clean up tests to broadly clean and restore process/test environment and simplify test code.
This work uncovered that we were returning profiles when no profile credentials were loaded. This seems inappropriate. The tests were modified to use the temporary credential file code that @stevecaldwell77 wrote, exclusively. This way there are actual credentials to load from the given profile.
I am not sure how to test the assume-role/asynchronous STS credential loading capability and would love some help making sure that is right