UNPKG

arrowdbv2demo

Version:
172 lines (164 loc) 6.39 kB
var fs = require('fs'), assert = require('assert'), testUtil = require('./testUtil') config = require('../config'); // test files var file1 = fs.createReadStream(__dirname + '/files/appcelerator.png'); var file2 = fs.createReadStream(__dirname + '/files/welcome.pdf'); var arrowDBEntryPoint = (process.env.ARROWDB_ENTRYPOINT ? process.env.ARROWDB_ENTRYPOINT : 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 }), arrowDBUsername = 'paul2', arrowDBPassword = 'cocoafish2', arrowDBFileId, arrowDBFileName = '', arrowDBFileNewName = '', authNew = 'Basic ' + Buffer.from(arrowDBUsername + ':' + arrowDBPassword).toString('base64'); describe('Files Test', function () { before(function (done) { testUtil.generateUsername(function (username) { arrowDBFileName = arrowDBUsername + '_testfile'; arrowDBFileNewName = arrowDBUsername + '_testnewfile'; done(); }); }); describe('.userLogin', function () { it('Should create user successfully', function (done) { this.timeout(5000); 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'); arrowDBApp.sessionCookieString = result.cookieString; done(); }); }); }); describe('.createFile', function () { it('Should create file successfully', function (done) { this.timeout(5000); arrowDBApp.fileCreate({ file: file1, data: { 'name': arrowDBFileName, '_acl': { 'rgs': ['#public'], 'wgs': ['#public'] } }, }, function (err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 201); assert(result.body.response.data[0]._id); arrowDBFileId = result.body.response.data[0]._id assert.equal(result.body.response.data[0].name, arrowDBFileName); assert.equal(result.body.response.data[0]._type, "file"); assert.equal(result.body.response.data[0].processed, false); done(); }); }); }); testUtil.delay(10000) describe('.FileQuery', function () { it('Should query File correctly', function (done) { this.timeout(5000); arrowDBApp.fileQuery({ where: { "_id": arrowDBFileId }, }, function (err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); done(); }); }); }); describe('.queryAndCountFiles', function () { it('Should return all Files', function (done) { this.timeout(5000); arrowDBApp.fileQuery({ limit: 100 }, function (err, result) { assert.ifError(err); assert(result); assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); done(); }); }); }); describe('.showAndUpdateFile', function () { it('Should show file successfully', function (done) { this.timeout(5000); arrowDBApp.get('/v2/file/' + arrowDBFileId, function (err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); arrowDBFileId = result.body.response.data[0]._id assert.equal(result.body.response.data[0].name, arrowDBFileName); assert.equal(result.body.response.data[0]._type, "file"); done(); }); }); testUtil.delay(10000) it('Should first update file be successfull', function (done) { this.timeout(5000); arrowDBApp.fileUpdate({ path: arrowDBFileId, data: { "name": arrowDBFileNewName, "_acl": { "rgs": ["#public"], "wgs": ["#public"] }, }, file: file2, }, function (err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); arrowDBFileId = result.body.response.data[0]._id done(); }); }); testUtil.delay(10000) it('Should second update file be successfull', function (done) { this.timeout(5000); arrowDBApp.fileUpdate({ path: arrowDBFileId, data: `{ "name":"second file update comment", "_acl":{"rgs":["#public"],"wgs":["#public"]} }`, }, function (err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); arrowDBFileId = result.body.response.data[0]._id done(); }); }); testUtil.delay(10000) describe('.deleteFile', function () { it('Should delete file be successfull', function (done) { this.timeout(50000); arrowDBApp.fileDelete({ path: arrowDBFileId }, function (err, result) { assert.ifError(err); assert(result.body); assert.equal(result.body.status, 200); done(); }); }); }); }); });