Mentions légales du service

Skip to content
Snippets Groups Projects
Commit aacf2b34 authored by rafaelangarita's avatar rafaelangarita
Browse files

init integration tests

parent 0cfe5b67
No related branches found
No related tags found
No related merge requests found
var mongo = require('mongodb').MongoClient;
var mongoUri = process.env.USNB_MONGO_URI_ENTITY_MANAGER;
exports.mongoUri = mongoUri;
exports.BSON = mongo.BSONPure;
exports.cleardb = (doneit) => {
console.log('Clearing Database: ' + mongoUri);
mongo.connect(mongoUri, (err, db) => {
if (err)
return console.dir(err);
db.collection('messages', (err, collection) => {
if (err)
return console.dir(err);
collection.remove({}, {
w: 1
}, (err, result) => {
if (err)
return console.dir(err);
db.collection('users', (err, collection) => {
if (err)
return console.dir(err);
collection.remove({}, {
w: 1
}, (err, result) => {
if (err)
return console.dir(err);
db.collection('services', (er, collection) => {
if (err)
return console.dir(err);
collection.remove({}, {
w: 1
}, (err, result) => {
if (err)
return console.dir(err);
db.collection('identities', (er, collection) => {
if (err)
return console.dir(err);
collection.remove({}, {
w: 1
}, (err, result) => {
if (err)
return console.dir(err);
db.collection('preferences', (er, collection) => {
if (err)
return console.dir(err);
collection.remove({}, {
w: 1
}, (err, result) => {
if (err)
return console.dir(err);
db.close();
console.log('Database cleared');
doneit();
});
});
});
});
});
});
});
});
});
});
});
}
......@@ -14,5 +14,11 @@
"morgan": "~1.8.1",
"serve-favicon": "~2.4.2",
"http-proxy-middleware":"0.17.4"
},
"devDependencies": {
"mocha": "^3.4.1",
"should": "11.1.x",
"supertest": "2.0.x",
"mongodb": "2.2.x"
}
}
var should = require('should');
var assert = require('assert');
var request = require('supertest');
var express = require('express');
var dbutils = require('../lib/dbutils.js');
var app = require('../start');
describe('Routing', () => {
var url = 'http://localhost:' + process.env.USNB_API_GATEWAY_PORT;
before((done) => {
dbutils.cleardb(() => {
done();
});
});
after((done) => {
dbutils.cleardb(() => {
done();
});
});
//Create tests
//
describe('User', () => {
it('should successfully create a new user', (done) => {
var profile = {
userId: 'user@universe.u',
name: 'Test User'
};
request(url)
.post('/users')
.send(profile)
.end((err, res) => {
if (err)
throw err;
res.should.have.property('status', 200);
done();
});
});
it('should successfully create another new user', (done) => {
var profile = {
userId: 'test@elsewhere.e',
name: 'Test User2'
};
request(url)
.post('/users')
.send(profile)
.end((err, res) => {
if (err)
throw err;
res.should.have.property('status', 200);
done();
});
});
it('should successfully create even another new user', (done) => {
var profile = {
userId: 'third@ss.com',
name: 'Third One'
};
request(url)
.post('/users')
.send(profile)
.end((err, res) => {
if (err)
throw err;
res.should.have.property('status', 200);
done();
});
});
it('should not create a user with duplicate userId', (done) => {
var profile = {
userId: 'third@ss.com',
name: 'Third One'
};
request(url)
.post('/users')
.send(profile)
.end((err, res) => {
if (err)
throw err;
res.should.have.property('status', 500);
done();
});
});
//Read tests
//
it('should return three users', (done) => {
request(url)
.get('/users')
.end((err, res) => {
if (err)
throw err;
res.should.have.property('status', 200);
res.body.should.have.lengthOf(3);
usersArray = JSON.parse(res.text);
assert.equal(usersArray[0].userId, 'user@universe.u');
assert.equal(usersArray[1].userId, 'test@elsewhere.e');
assert.equal(usersArray[2].userId, 'third@ss.com');
done();
});
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment