gauthify
Version:
GAuthify Node Client Library - two factor authentication via SMS/Voice/Email/Google Authenticator
158 lines (140 loc) • 6.23 kB
JavaScript
var GAuthify = require('../lib/gauthify.js');
var chai = require("chai");
var assert = chai.assert;
global.user_info;
global.timeout_val = 50000;
before(function(){
api_key = "<api key>";
gauthify = new GAuthify(api_key);
account_name = email = 'imadeajay@gmail.com';
sms_number = voice_number = '9168135913';
});
describe('Gauthify module testSuites', function() {
it('Testing Creating a User', function(done) {
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.create_user(account_name, account_name,
email, sms_number=sms_number, voice_number=voice_number, function(err, res){
assert.equal(res.unique_id, account_name, "Account unique_id not same");
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.email, email, "Account email id not same");
assert.equal(res.sms_number, '+1' + sms_number, "Account sms_number not same");
assert.equal(res.voice_number, '+1' + voice_number, "Account voice_number not same");
done();
});
});
it('Retrieving User by unique_id', function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.get_user(account_name, function(err, res){
user_info=res;
assert.instanceOf(res, Object, 'response is not object instance');
assert.equal(res.unique_id, account_name, "Account unique_id not same");
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.email, email, "Account email id not same");
assert.equal(res.sms_number, '+1' + sms_number, "Account sms_number not same");
assert.equal(res.voice_number, '+1' + voice_number, "Account voice_number not same");
done();
});
});
it('Retrieving User by token', function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.get_user_by_token("account_name", function(err, res){
assert.throws(err.name, "NotFoundError", "token not found.");
done();
});
});
it('Retrieving All Users', function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.get_all_users(function(err, res){
assert.instanceOf(res, Array, 'response is not a array of users');
assert.isAbove(res.length, 0, 'Error:response is not a array of users is empty');
done();
});
});
it("Checking wrong auth code", function(done){
gauthify.check_auth(account_name, "123456", function(err, res){
assert.equal(typeof(res), 'boolean', "response has not boolean type");
assert.equal(res, false, "return true for worng otp");
done();
});
});
it("Testing correct auth code",function(done){
gauthify.check_auth(account_name, user_info.otp, function(err, res){
assert.equal(typeof(res), 'boolean', "response has not boolean type");
assert.equal(res, true, "return false for correct otp");
done();
});
});
it("Sending OTP on email", function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.send_email(account_name, user_info.email, function(err, res) {
assert.instanceOf(res, Object, 'response is not object instance');
assert.equal(res.unique_id, account_name, "Account unique_id not same");
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.email, email, "Account email id not same");
done();
});
});
it("Sending OTP on mobile", function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.send_sms(account_name, user_info.sms_number, function(err, res) {
assert.instanceOf(res, Object, 'response is not object instance');
assert.equal(res.unique_id, account_name, "Account unique_id not same");
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.sms_number,'+1' + sms_number, "Account mobile number not same");
done();
});
});
it("Sending OTP on voice", function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.send_voice(account_name, user_info.voice_number,function(err, res) {
assert.instanceOf(res, Object, 'response is not object instance');
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.voice_number, '+1' + voice_number, "Account voice number not same");
done();
});
});
it("Updating user info", function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
email='ajaysggs@gmail.com';
sms_number='+19168135913';
gauthify.update_user(account_name, email, sms_number, function(err, res){
assert.instanceOf(res, Object, 'response is not object instance');
assert.equal(res.unique_id, account_name, "Account unique_id not same");
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.email, email , "Account email not same");
assert.equal(res.sms_number, sms_number , "Account sms_number not same");
gauthify.update_user(account_name, account_name, function(err, res){
done();
email = "imadeajay@gmail.com"
});
});
});
it("Deleting user", function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.delete_user(account_name, function(err, res){
assert.instanceOf(res, Object, 'response is not object instance');
assert.equal(res.unique_id, account_name, "Account unique_id not same");
assert.equal(res.display_name, account_name, "Account display_name not same");
assert.equal(res.email, email, "Account email id not same");
assert.equal(res.sms_number, sms_number, "Account sms_number not same");
assert.equal(res.voice_number, '+1' + voice_number, "Account voice_number not same");
done();
});
});
it("Getting all error code", function(done){
this.timeout(timeout_val);
setTimeout(done, timeout_val);
gauthify.api_errors(function(err, res){
assert.instanceOf(res, Object, 'response is not object instance');
});
});
});