UNPKG

orcinus

Version:
130 lines (123 loc) 3.55 kB
'use strict'; global.test = true; process.env.ORCINUS_HOST = '127.0.0.1'; process.env.ORCINUS_PORT = '4000'; process.env.ORCINUS_HTTP_CORS = '*' process.env.ORCINUS_DB = 'localhost'; var pkg = require(__dirname + '/../package.json'); var mongoose = require('mongoose'); mongoose.connection.dropDatabase('test'); var chp = require('child_process'); var server = require('../server')(); var request = require('supertest'); var should = require('should'); var faker = require('faker'); var password = faker.internet.password(); var username, email, token; const timeout = 5000; // TODO : drop test db before testing describe('Orcinus Dashboard', function() { describe('API', function() { it('Signup', function(done) { this.timeout(timeout); email = faker.internet.email(); request(server) .post('/apis/auth/signup') .send({ username : 'admin', password : password, email : email, firstname : faker.name.firstName(), lastname : faker.name.lastName(), admin : true, }) .end((err, res) => { should(res.statusCode).equal(200); var result = JSON.parse(res.text); done(); }); }); it('Failed to signup with existing username', function(done) { this.timeout(timeout); request(server) .post('/apis/auth/signup') .send({ username : 'admin', password : password, email : faker.internet.email(), firstname : faker.name.firstName(), lastname : faker.name.lastName(), admin : true, }) .end((err, res) => { should(res.statusCode).equal(409); done(); }); }); it('Failed to signup with existing email', function(done) { this.timeout(timeout); request(server) .post('/apis/auth/signup') .send({ username : 'admin1', password : password, email : email, firstname : faker.name.firstName(), lastname : faker.name.lastName(), admin : true, }) .end((err, res) => { should(res.statusCode).equal(409); done(); }); }); it('Get token', function(done) { this.timeout(timeout); request(server) .post('/apis/auth/signin') .send({ username : 'admin', password : password, }) .end((err, res) => { var result = JSON.parse(res.text); token = result.token; done(); }); }); it('Ping', function(done) { this.timeout(timeout); request(server) .get('/apis/ping') .set('X-Access-Token', token) .end((err, res) => { should(res.text).equal('OK'); done(); }); }); it('Unauthorized', function(done) { this.timeout(timeout); request(server) .get('/apis/ping') .end((err, res) => { should(res.text).equal('{"success":false,"message":"No token provided."}'); done(); }); }); it('Info', function(done) { this.timeout(timeout); request(server) .get('/apis/info') .set('X-Access-Token', token) .end((err, res) => { should(res.body.name).equal(pkg.name); should(res.body.version).equal(pkg.version); should(res.body.description).equal(pkg.description); should(res.body.bugs.url).equal(pkg.bugs.url); should(res.body.deployment).equal('dev'); should(res.body.cors).equal(process.env.ORCINUS_HTTP_CORS); done(); }); }); }); });