I have Connection class that is used to connect to AWS Rds Proxy via IAM Authentication. Part of that process is to create a token. I have a function to create the token but now I having a hard time to mock and test it.
Here is the Connection class with setToken
method:
class Connection {
constructor(username, endpoint, database) {
this.username = username;
this.endpoint = endpoint;
this.database = database;
}
setToken () {
let signer = new AWS.RDS.Signer({
region: 'us-east-1', // example: us-east-2
hostname: this.endpoint,
port: 3306,
username: this.username
});
this.token = signer.getAuthToken({
username: this.username
});
}
}
And here I am trying to mock the return value of AWS.RDS.Signer.getAuthToken()
test('Test Connection setToken', async () => {
AWSMock.setSDKInstance(AWS);
AWSMock.mock('RDS.Signer', 'getAuthToken', 'mock-token');
let conn = new connections.Connection(
'testUser',
'testEndpoint',
'testDb');
conn.setToken();
console.log(conn.token);
});
I expected to see "mock-token" as the value for conn.token
, but what I get is this:
{
promise: [Function],
createReadStream: [Function: createReadStream],
on: [Function: on],
send: [Function: send]
}
How can I get AWS.RDS.Signer.getAuthToken()
to return a mock token?
from Mock Javascript AWS.RDS.Signer
No comments:
Post a Comment