arrowdbv2demo
Version:
Appcelerator ArrowDB SDK for NodeJS
172 lines (164 loc) • 6.39 kB
JavaScript
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();
});
});
});
});
});