imapflow
Version:
IMAP Client for Node
102 lines (86 loc) • 2.82 kB
JavaScript
;
const { ImapFlow } = require('../lib/imap-flow');
const { AuthenticationFailure } = require('../lib/tools');
module.exports['Authentication: Password auth configuration'] = test => {
let client = new ImapFlow({
host: 'imap.example.com',
auth: {
user: 'testuser',
pass: 'testpass'
}
});
test.equal(client.options.auth.user, 'testuser');
test.equal(client.options.auth.pass, 'testpass');
test.done();
};
module.exports['Authentication: OAuth2 auth configuration'] = test => {
let client = new ImapFlow({
host: 'imap.example.com',
auth: {
user: 'testuser',
accessToken: 'oauth2_token_here'
}
});
test.equal(client.options.auth.user, 'testuser');
test.equal(client.options.auth.accessToken, 'oauth2_token_here');
test.done();
};
module.exports['Authentication: Login method specification'] = test => {
let client = new ImapFlow({
host: 'imap.example.com',
auth: {
user: 'testuser',
pass: 'testpass',
loginMethod: 'AUTH=PLAIN'
}
});
test.equal(client.options.auth.loginMethod, 'AUTH=PLAIN');
test.done();
};
module.exports['Authentication: SASL PLAIN with authzid for impersonation'] = test => {
let client = new ImapFlow({
host: 'imap.example.com',
auth: {
user: 'admin@example.com',
pass: 'adminpass',
authzid: 'user@example.com',
loginMethod: 'AUTH=PLAIN'
}
});
test.equal(client.options.auth.user, 'admin@example.com');
test.equal(client.options.auth.pass, 'adminpass');
test.equal(client.options.auth.authzid, 'user@example.com');
test.equal(client.options.auth.loginMethod, 'AUTH=PLAIN');
test.done();
};
module.exports['Authentication: AuthenticationFailure error structure'] = test => {
let error = new AuthenticationFailure('Invalid credentials');
test.ok(error instanceof Error);
test.equal(error.constructor.name, 'AuthenticationFailure');
test.equal(error.message, 'Invalid credentials');
test.done();
};
module.exports['Authentication: Verify-only mode'] = test => {
let client = new ImapFlow({
host: 'imap.example.com',
auth: {
user: 'testuser',
pass: 'testpass'
},
verifyOnly: true
});
test.equal(client.options.verifyOnly, true);
test.done();
};
module.exports['Authentication: Disable auto IDLE'] = test => {
let client = new ImapFlow({
host: 'imap.example.com',
auth: {
user: 'testuser',
pass: 'testpass'
},
disableAutoIdle: true
});
test.equal(client.options.disableAutoIdle, true);
test.done();
};