UNPKG

arrowdbv2demo

Version:
128 lines (116 loc) 3.59 kB
var assert = require('assert'), testUtil = require('./testUtil'); config = require('../config'); const { format } = require('path'); var arrowDBEntryPoint = config.endpoint.test_api; var arrowDBKey = process.env.ARROWDB_APPKEY; if (!arrowDBKey) { console.error('Please create an ArrowDB app and assign ARROWDB_APPKEY in environment vars.'); process.exit(1); } console.log('ArrowDB Entry Point: %s', arrowDBEntryPoint); console.log('MD5 of ARROWDB_APPKEY: %s', testUtil.md5(arrowDBKey)); var ArrowDB = require('../index'), arrowDBApp = new ArrowDB(arrowDBKey, { apiEntryPoint: arrowDBEntryPoint, prettyJson: true }), arrowDBUsername = "paul2", arrowDBPassword = 'cocoafish2'; sessionCookieString = ''; userID = ''; authNew = 'Basic ' + Buffer.from(arrowDBUsername + ':' + arrowDBPassword).toString('base64'); describe('Users Test', function() { describe('.loginUser', function() { it('Newly created user should be able to login successfully', function(done) { this.timeout(20000); arrowDBApp.userLogin({ req: { headers: { Authorization: authNew, } } }, function(err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); assert.equal(result.body.method_name, 'GET /v2/user/login'); sessionCookieString = result.cookieString; done(); }); }); }); describe('.queryUsers', function() { it('Should return all users', function(done) { this.timeout(20000); arrowDBApp.userQuery({ cookieString : sessionCookieString, }, function(err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); assert.equal(result.body.method_name, 'GET /v2/user/query'); done(); }); }); }); describe('.createUser', function() { it('Should create user correctly', function(done) { this.timeout(20000); arrowDBApp.userCreate({ '_login': 'paul76', '_password': 'cocoafish64', cookieString : sessionCookieString, }, function(err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 201); assert.equal(result.body.method_name, 'POST /v2/user'); var obj = JSON.parse(JSON.stringify(result.body)); userID = obj.response.data[0]._id; done(); }); }); }); describe('.updateUser', function() { it('Should update user successfully with custom_fields as a hash', function(done) { this.timeout(20000); arrowDBApp.put('/v2/user/'+userID, { data: `{"$set":{"color":"blue"}}`, }, function(err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); assert.equal(result.body.method_name, 'PUT /v2/user/'+userID); done(); }); }); }); describe('.deleteUser', function() { it('Should delete user successfully', function(done) { this.timeout(20000); arrowDBApp.userDelete({ 'user_id': userID, cookieString : sessionCookieString, }, function(err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); assert.equal(result.body.method_name, 'DELETE /v2/user/'+userID); done(); }); }); }); describe('.logoutUser', function() { it('Should log out user successfully', function(done) { this.timeout(20000); arrowDBApp.userLogout({}, function(err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); assert.equal(result.body.method_name, 'GET /v2/user/logout'); done(); }); }); }); });