Skip to content
Snippets Groups Projects
Commit 7250b792 authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Set test coverage threshold at 80%

parent e6c24d65
Branches
Tags
1 merge request!22Add istanbul to gulp task test
Pipeline #
require('babel-core/register');
const fs = require('fs');
const gulp = require('gulp');
......@@ -74,11 +76,15 @@ gulp.task('test', ['pre-test'], () => {
gulp.src('test/test.js', {read: false})
.pipe(mocha())
.pipe(istanbul.writeReports())
.pipe(istanbul.enforceThresholds({ thresholds: { global: 75 } }))
.once('error', () => {
.pipe(istanbul.enforceThresholds({
thresholds: {
global: 80
}
}))
.on('error', () => {
process.exit(1);
})
.once('end', () => {
.on('end', () => {
process.exit();
});
});
......
......@@ -39,6 +39,7 @@
"babel-register": "^6.14.0",
"babelify": "^7.3.0",
"browserify": "^13.1.0",
"chai-xml": "^0.3.1",
"docdash": "^0.4.0",
"eslint": "^3.3.1",
"eslint-config-airbnb": "^10.0.1",
......
......@@ -48,11 +48,6 @@ enrollmentApp.get('/adm_dependency', (req, res, next) => {
next();
}, query, response('adm_dependency'));
enrollmentApp.get('/data', (req, res, next) => {
req.sql = squel.select().from('turmas');
next();
}, query, response('data'));
// Parse the filters and dimensions parameter in the query
enrollmentApp.use('/', parseParams('filter', [
'min_year',
......
......@@ -18,3 +18,6 @@ app.set('ip', process.env.IP || config.get('ip') || '127.0.0.1');
const server = app.listen(app.get('port'), () => {
log.info(`Express server listening on port ${server.address().port}`);
});
// For testing
module.exports = server;
process.env.NODE_ENV = 'test';
const chai = require('chai');
const dirtyChai = require('dirty-chai');
chai.use(dirtyChai);
const chaiXml = require('chai-xml');
chai.use(chaiXml);
const chaiHttp = require('chai-http');
const assert = chai.assert;
......@@ -32,6 +38,48 @@ describe('API is running', () => {
});
describe('request enrollments', () => {
it('should list the year range', (done) => {
chai.request(server)
.get('/api/v1/enrollment/year_range')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('start_year');
res.body.result[0].should.have.property('end_year');
done();
});
});
it('should list the education level', (done) => {
chai.request(server)
.get('/api/v1/enrollment/education_level')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('id');
res.body.result[0].should.have.property('name');
done();
});
});
it('should list the administrative dependencies', (done) => {
chai.request(server)
.get('/api/v1/enrollment/adm_dependency ')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('id');
res.body.result[0].should.have.property('name');
done();
});
});
it('should list enrollments', (done) => {
chai.request(server)
.get('/api/v1/enrollment')
......@@ -45,6 +93,84 @@ describe('request enrollments', () => {
done();
});
});
it('should list enrollments with valid filters', (done) => {
chai.request(server)
.get('/api/v1/enrollment?filter=min_year:2010,state:41')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('name');
res.body.result[0].should.have.property('total');
done();
});
});
it('should list enrollments with invalid filters', (done) => {
chai.request(server)
.get('/api/v1/enrollment?filter=foo:2010,bar:41')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('name');
res.body.result[0].should.have.property('total');
done();
});
});
it('should list enrollments with valid dimensions', (done) => {
chai.request(server)
.get('/api/v1/enrollment?dims=region,state,adm_dependency_id,location_id&filter=min_year:2014,region:4')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('region_name');
res.body.result[0].should.have.property('state_name');
res.body.result[0].should.have.property('adm_dependency_name');
res.body.result[0].should.have.property('total');
done();
});
});
it('should list enrollments with invalid dimensions', (done) => {
chai.request(server)
.get('/api/v1/enrollment?dims=foo,bar')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('name');
res.body.result[0].should.have.property('total');
done();
});
});
it('should list enrollments with valid dimensions and filters', (done) => {
chai.request(server)
.get('/api/v1/enrollment?dims=region,state,education_level_id,school&filter=min_year:2013,max_year:2014,city:3287')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('result');
res.body.result.should.be.a('array');
res.body.result[0].should.have.property('region_name');
res.body.result[0].should.have.property('state_name');
res.body.result[0].should.have.property('school_name');
res.body.result[0].should.have.property('education_level');
res.body.result[0].should.have.property('total');
res.body.result[0].should.have.property('year');
done();
});
});
});
describe('request regions', () => {
......@@ -239,3 +365,34 @@ describe('request schools', () => {
})
})
});
describe('test response', () => {
it('should list all regions in json', (done) => {
chai.request(server)
.get('/api/v1/region')
.end((err, res) => {
res.should.have.status(200);
res.should.be.json;
done();
});
});
it('should list all regions in xml', (done) => {
chai.request(server)
.get('/api/v1/region?format=xml')
.end((err, res) => {
res.should.have.status(200);
res.should.be.xml;
done();
});
});
it('should list all regions in csv', (done) => {
chai.request(server)
.get('/api/v1/region?format=csv')
.end((err, res) => {
res.should.have.status(200);
done();
});
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment