diff --git a/src/libs/routes/enrollment.js b/src/libs/routes/enrollment.js
index 389595ecb4b473ad610ebc516d03dbdd3a8ef005..65110003de781c01472300fe233dc03898c79d96 100644
--- a/src/libs/routes/enrollment.js
+++ b/src/libs/routes/enrollment.js
@@ -512,8 +512,8 @@ rqf.addField({
     name: 'ethnic_group',
     table: 'matricula',
     tableField: 'cor_raca_id',
+    resultField: 'ethnic_group_id',
     where: {
-      resultField: 'ethnic_group_id',
         relation: '=',
         type: 'integer',
         field: 'cor_raca_id'
diff --git a/src/libs/routes/financial.js b/src/libs/routes/financial.js
index c4de60928a1732fea35ce663a2ad3a99e03db22d..bfe272058ce1d385bce3934b49a094140c496f1e 100644
--- a/src/libs/routes/financial.js
+++ b/src/libs/routes/financial.js
@@ -150,20 +150,36 @@ rqf.addField({
 });
 
 financialApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
-    req.sql.from('indicadores_financeiros')
-    .field('indicadores_financeiros.estado_id', 'state_id')
-    .field('indicadores_financeiros.ano_censo', 'year')
-    .field('estado.sigla', 'state_abbreviation')
-    .field('indicadores_financeiros.valor', 'valor')
-    .field('indicadores_financeiros.esfera_adm', 'sphere_adm_id')
-    .field('indicadores_financeiros.dados_financeiros', 'financial_data_id')
-    .join('estado', null, 'indicadores_financeiros.estado_id=estado.id')
-    .group('indicadores_financeiros.ano_censo')
-    .group('indicadores_financeiros.estado_id')
-    .group('estado.sigla')
-    .group('indicadores_financeiros.valor')
-    .group('indicadores_financeiros.dados_financeiros')
-    .group('indicadores_financeiros.esfera_adm')
+		if ("state" in req.filter) {
+	    req.sql.from('indicadores_financeiros')
+	    .field('indicadores_financeiros.estado_id', 'state_id')
+	    .field('indicadores_financeiros.ano_censo', 'year')
+	    .field('estado.sigla', 'state_abbreviation')
+	    .field('indicadores_financeiros.valor', 'valor')
+	    .field('indicadores_financeiros.esfera_adm', 'sphere_adm_id')
+	    .field('indicadores_financeiros.dados_financeiros', 'financial_data_id')
+	    .group('indicadores_financeiros.ano_censo')
+	    .group('indicadores_financeiros.estado_id')
+	    .group('estado.sigla')
+	    .group('indicadores_financeiros.valor')
+	    .group('indicadores_financeiros.dados_financeiros')
+	    .group('indicadores_financeiros.esfera_adm')
+		} else {
+	    req.sql.from('indicadores_financeiros')
+	    .field('indicadores_financeiros.estado_id', 'state_id')
+	    .field('indicadores_financeiros.ano_censo', 'year')
+	    .field('estado.sigla', 'state_abbreviation')
+	    .field('indicadores_financeiros.valor', 'valor')
+	    .field('indicadores_financeiros.esfera_adm', 'sphere_adm_id')
+	    .field('indicadores_financeiros.dados_financeiros', 'financial_data_id')
+	    .join('estado', null, 'indicadores_financeiros.estado_id=estado.id')
+	    .group('indicadores_financeiros.ano_censo')
+	    .group('indicadores_financeiros.estado_id')
+	    .group('estado.sigla')
+	    .group('indicadores_financeiros.valor')
+	    .group('indicadores_financeiros.dados_financeiros')
+	    .group('indicadores_financeiros.esfera_adm')
+		}
     next();
 }, query, addMissing(rqf), id2str.transform(), response('financial'));
 
diff --git a/src/libs/routes/schoolInfrastructure.js b/src/libs/routes/schoolInfrastructure.js
index ca7cbd28e18bdbc3fdc48b42c2427aa920b86819..f805e8827768eec1c4c6122c25da4be2672d43ce 100644
--- a/src/libs/routes/schoolInfrastructure.js
+++ b/src/libs/routes/schoolInfrastructure.js
@@ -87,19 +87,26 @@ infrastructureApp.get('/rural_location', (req, res, next) => {
 }, response('rural_location'));
 
 infrastructureApp.get('/adm_dependency', (req, res, next) => {
-    req.sql.from('dependencia_adm')
-    .field('id')
-    .field('nome', 'name')
-    .where('id <= 4');
+    req.result = [];
+    for(let i = 1; i <= 4; ++i) {
+        req.result.push({
+            id: i,
+            name: id2str.admDependency(i)
+        });
+    };
     next();
-}, query, response('adm_dependency'));
+}, response('adm_dependency'));
 
 infrastructureApp.get('/adm_dependency_detailed', (req, res, next) => {
-    req.sql.from('dependencia_adm_priv')
-    .field('id', 'id')
-    .field('nome', 'name');
+    req.result = [];
+    for(let i = 1; i <= 6; ++i) {
+        req.result.push({
+            id: i,
+            name: id2str.admDependencyPriv(i)
+        });
+    };
     next();
-}, query, response('adm_dependency_detailed'));
+}, response('adm_dependency_detailed'));
 
 rqf.addField({
     name: 'filter',
diff --git a/src/libs/routes/transport.js b/src/libs/routes/transport.js
index b286c001f85b7a89221f28570a0826beca50ba0e..6435833b591e75e3af451aeb4cce420904fb2449 100644
--- a/src/libs/routes/transport.js
+++ b/src/libs/routes/transport.js
@@ -287,16 +287,6 @@ rqf.addField({
         type: 'integer',
         field: 'tipo'
     }
-}).addValue({
-    name: 'service_type',
-    table: 'matricula',
-    tableField: 'tipo',
-    resultField: 'service_type_id',
-    where: {
-        relation: '=',
-        type: 'integer',
-        field: 'tipo'
-    }
 }).addValue({
     name: 'min_year',
     table: 'matricula',
diff --git a/src/test/class.js b/src/test/class.js
index a10ee1f1adeb2daf94f0aaf122cb39b77df45206..dd283b55ac5a0bb84378ff49d14c5254135b76d2 100644
--- a/src/test/class.js
+++ b/src/test/class.js
@@ -127,7 +127,7 @@ describe('request class', () => {
             });
     });
 
-    it('should list the administrative dependencies', (done) => {
+    it('should list the administrative dependencies detailed', (done) => {
         chai.request(server)
             .get('/api/v1/class/adm_dependency_detailed')
             .end((err, res) => {
@@ -141,7 +141,7 @@ describe('request class', () => {
             });
     });
 
-    it('should list the administrative dependencies detailed', (done) => {
+    it('should list the administrative dependencies', (done) => {
         chai.request(server)
             .get('/api/v1/class/adm_dependency')
             .end((err, res) => {
diff --git a/src/test/classCount.js b/src/test/classCount.js
new file mode 100644
index 0000000000000000000000000000000000000000..9880db28f2468054dd9cf54cc149b9b32a002838
--- /dev/null
+++ b/src/test/classCount.js
@@ -0,0 +1,318 @@
+/*
+Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
+
+This file is part of simcaq-node.
+
+simcaq-node is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+simcaq-node is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with simcaq-node.  If not, see <https://www.gnu.org/licenses/>.
+*/
+
+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;
+
+const expect = chai.expect;
+
+const should = chai.should(); // actually call the function
+
+const libs = `${process.cwd()}/libs`;
+
+const server = require(`${libs}/app`);
+
+chai.use(chaiHttp);
+describe('request classCount', () => {
+    it('should return 400 with no filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/')
+            .end((err, res) => {
+                res.should.have.status(400);
+                res.should.be.json;
+                res.body.should.have.property('error');
+                res.body.error.should.be.equal('Wrong/No filter specified');
+                done();
+            });
+    });
+
+    it('should list the rural locations', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/rural_location')
+            .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 education level mod', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/education_level_mod')
+            .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 education level short', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/education_level_short')
+            .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 year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/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 years', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/years')
+            .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('year');
+                done();
+            });
+    });
+
+    it('should list the administrative dependencies', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/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 the administrative dependencies detailed', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/adm_dependency_detailed')
+            .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 locations', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/location')
+            .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 source', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/source')
+            .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('source');
+                done();
+            });
+    });
+
+    it('should list the simcaq class count', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/count')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                done();
+            });
+    });
+
+    it('should list the simcaq class count with valid filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/count?filter=state:14')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                done();
+            });
+    });
+
+    it('should list the simcaq class count with valid dim', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count/count?dims=region')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                res.body.result[0].should.have.property('region_name');
+                done();
+            });
+    });
+
+    it('should list class count with education level filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count?filter=education_level_mod:["1"]')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                done();
+            });
+    });
+
+    it('should list class count with education level dims', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count?dims=education_level_mod')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                res.body.result[0].should.have.property('education_level_mod_id');
+                res.body.result[0].should.have.property('education_level_mod_name');
+                done();
+            });
+    });
+
+    it('should list class count with valid dims', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count?dims=education_level_mod,location')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                res.body.result[0].should.have.property('education_level_mod_id');
+                res.body.result[0].should.have.property('education_level_mod_name');
+                res.body.result[0].should.have.property('location_id');
+                res.body.result[0].should.have.property('location_name');
+                done();
+            });
+    });
+
+    it('should list class count with education level year limiter', (done) => {
+        chai.request(server)
+            .get('/api/v1/class_count?dims=education_level_mod&filter=min_year:2014,max_year:2014')
+            .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('year');
+                res.body.result[0].should.have.property('average');
+                res.body.result[0].should.have.property('median');
+                res.body.result[0].should.have.property('stddev');
+                res.body.result[0].should.have.property('first_qt');
+                res.body.result[0].should.have.property('third_qt');
+                res.body.result[0].should.have.property('education_level_mod_id');
+                res.body.result[0].should.have.property('education_level_mod_name');
+                done();
+            });
+    });
+
+});    
diff --git a/src/test/cub.js b/src/test/cub.js
index ea6c0d68af6d2fb60c11e401c365b4bf3bdd1de2..475e718f920bd51ce78d5b4150983d84a3d36fc5 100644
--- a/src/test/cub.js
+++ b/src/test/cub.js
@@ -112,4 +112,35 @@ describe('request cub', () => {
                 done();
             });
     });
+
+    it('should return query cub wtih state dim', (done) => {
+        chai.request(server)
+            .get('/api/v1/cub?dims=state')
+            .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('cod_uf');
+                res.body.result[0].should.have.property('sigla_uf');
+                res.body.result[0].should.have.property('tipo_preco');
+                res.body.result[0].should.have.property('preco');
+                done();
+            });
+    });
+
+    it('should return query cub wtih valid filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/cub?filter=min_year:2017')
+            .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('sigla_uf');
+                res.body.result[0].should.have.property('tipo_preco');
+                res.body.result[0].should.have.property('preco');
+                done();
+            });
+    });
 });
diff --git a/src/test/dailyChargeAmount.js b/src/test/dailyChargeAmount.js
index 20fb9aeabb2300b31fd8a971434177acb294fc8b..2c37d2749a1661b307cc37b64b643f8c76f2cb41 100644
--- a/src/test/dailyChargeAmount.js
+++ b/src/test/dailyChargeAmount.js
@@ -58,7 +58,7 @@ describe('request daily charge amount', () => {
             });
     });
 
-    it('should list the year range', (done) => {
+    it('should list the years', (done) => {
         chai.request(server)
             .get('/api/v1/daily_charge_amount/years')
             .end((err, res) => {
@@ -71,6 +71,47 @@ describe('request daily charge amount', () => {
             });
     });
 
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount/source')
+            .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('source');
+                done();
+            });
+    });
+
+    it('should list the adm dependency', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount/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 the adm dependency detailed', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount/adm_dependency_detailed')
+            .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 locations', (done) => {
         chai.request(server)
             .get('/api/v1/daily_charge_amount/location')
@@ -85,6 +126,21 @@ describe('request daily charge amount', () => {
             });
     });
 
+    it('should list the rural locations', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount/rural_location')
+            .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 education level short', (done) => {
         chai.request(server)
             .get('/api/v1/daily_charge_amount/education_level_short')
@@ -113,6 +169,20 @@ describe('request daily charge amount', () => {
             });
     });
 
+    it('should list the periods', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount/period')
+            .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 dimensions of education_level_short', (done) => {
         chai.request(server)
             .get('/api/v1/daily_charge_amount?dims=education_level_short&filter=min_year:"2015",max_year:"2015",integral_time:"0",period:["3"]')
@@ -172,4 +242,45 @@ describe('request daily charge amount', () => {
                 done();
             });
     });
+
+    it('should list the filter of integral time', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount?filter=integral_time:"1"')
+            .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('year');
+                res.body.result[0].should.have.property('education_level_short_id');
+                res.body.result[0].should.have.property('average_class_duration');
+                res.body.result[0].should.have.property('median_class_duration');
+                res.body.result[0].should.have.property('std_class_duration');
+                res.body.result[0].should.have.property('fstqt_class_duration');
+                res.body.result[0].should.have.property('thdqt_class_duration');
+                res.body.result[0].should.have.property('education_level_short_name');
+                done();
+            });
+    });
+
+    it('should list daily charge amount for period 2', (done) => {
+        chai.request(server)
+            .get('/api/v1/daily_charge_amount?filter=integral_time:"0",period:["2"]')
+            .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('year');
+                res.body.result[0].should.have.property('education_level_short_id');
+                res.body.result[0].should.have.property('average_class_duration');
+                res.body.result[0].should.have.property('median_class_duration');
+                res.body.result[0].should.have.property('std_class_duration');
+                res.body.result[0].should.have.property('fstqt_class_duration');
+                res.body.result[0].should.have.property('thdqt_class_duration');
+                res.body.result[0].should.have.property('education_level_short_name');
+                done();
+            });
+    });
+
 });
diff --git a/src/test/employees.js b/src/test/employees.js
new file mode 100644
index 0000000000000000000000000000000000000000..2eff61c43f4aef2db2adf562548f9fcfa4259146
--- /dev/null
+++ b/src/test/employees.js
@@ -0,0 +1,215 @@
+/*
+Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
+
+This file is part of simcaq-node.
+
+simcaq-node is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+simcaq-node is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with simcaq-node.  If not, see <https://www.gnu.org/licenses/>.
+*/
+
+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;
+
+const expect = chai.expect;
+
+const should = chai.should(); // actually call the function
+
+const libs = `${process.cwd()}/libs`;
+
+const server = require(`${libs}/app`);
+
+chai.use(chaiHttp);
+describe('request employees', () => {
+    it('should list the employees default query', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees')
+            .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('total');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('total_employees');
+                res.body.result[0].should.have.property('total_teachers');
+                done();
+            });
+    });
+
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/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 years', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/years')
+            .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('year');
+                done();
+            });
+    });
+
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/source')
+            .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('source');
+                done();
+            });
+    });
+
+
+    it('should list the adm dependency', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/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 the adm dependency detailed', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/adm_dependency_detailed')
+            .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 location', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/location')
+            .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 rural location', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees/rural_location')
+            .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 employees with valid filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees?filter=min_year:2017')
+            .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('total');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('total_employees');
+                res.body.result[0].should.have.property('total_teachers');
+                done();
+            });
+    });
+
+    it('should list employees with school dim', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees?dims=school&filter=state:11')
+            .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('total');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('total_employees');
+                res.body.result[0].should.have.property('total_teachers');
+                res.body.result[0].should.have.property('school_name');
+                res.body.result[0].should.have.property('school_id');
+                done();
+            });
+    });
+
+
+    it('should list employees with school filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/employees?filter=school:41126882')
+            .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('total');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('total_employees');
+                res.body.result[0].should.have.property('total_teachers');
+                done();
+            });
+    });
+
+});
\ No newline at end of file
diff --git a/src/test/enrollment.js b/src/test/enrollment.js
index af5f50a10db67db429b3c010f060b227cb3905fc..9ec5cba3314877483999f29be2ef700eba35646f 100644
--- a/src/test/enrollment.js
+++ b/src/test/enrollment.js
@@ -465,7 +465,7 @@ describe('request enrollments', () => {
                 res.should.be.json;
                 res.body.should.have.property('result');
                 res.body.result.should.be.a('array');
-                res.body.result[0].should.have.property('cor_raca_id');
+                res.body.result[0].should.have.property('ethnic_group_id');
                 done();
             });
     });
@@ -495,4 +495,18 @@ describe('request enrollments', () => {
                 done();
             });
     });
+
+    it('should list the age range', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/age_range_all')
+            .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();
+            });
+    });
 });
diff --git a/src/test/glossEnrollmentRatio.js b/src/test/glossEnrollmentRatio.js
index 562244cb6c27b5c9cfebb72eb9a8761b291b62da..39859b708082af41cdad78482b92a22aadcec21b 100644
--- a/src/test/glossEnrollmentRatio.js
+++ b/src/test/glossEnrollmentRatio.js
@@ -44,6 +44,19 @@ const server = require(`${libs}/app`);
 
 chai.use(chaiHttp);
 describe('request gloss enrollment ratio', () => {
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/gloss_enrollment_ratio/source')
+            .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('source');
+                done();
+            });
+    });
+
     it('should list the year range', (done) => {
         chai.request(server)
             .get('/api/v1/gloss_enrollment_ratio/year_range')
diff --git a/src/test/liquidEnrollmentRatio.js b/src/test/liquidEnrollmentRatio.js
index bbea4bb6e63fad64b0a03af40f3a400dc1081e29..b61a8d8f144b383e41e1fbffe567db3080f7a93e 100644
--- a/src/test/liquidEnrollmentRatio.js
+++ b/src/test/liquidEnrollmentRatio.js
@@ -44,6 +44,19 @@ const server = require(`${libs}/app`);
 
 chai.use(chaiHttp);
 describe('request liquid enrollment ratio', () => {
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/liquid_enrollment_ratio/source')
+            .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('source');
+                done();
+            });
+    });
+
     it('should list the year range', (done) => {
         chai.request(server)
             .get('/api/v1/liquid_enrollment_ratio/year_range')
@@ -179,4 +192,23 @@ describe('request liquid enrollment ratio', () => {
             });
     });
 
+    it('should list liquid ratio with education level basic filter', (done) => {
+        chai.request(server)
+            .get('/api/v1/liquid_enrollment_ratio?dims=education_level_basic&filter=education_level_basic:["1","2","4","5","6"]')
+            .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('total');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('age_range');
+                res.body.result[0].should.have.property('education_level_basic_id');
+                res.body.result[0].should.have.property('education_level_basic_name');
+                res.body.result[0].should.have.property('partial');
+                res.body.result[0].should.have.property('denominator');
+                done();
+            });
+    });
+
 });
diff --git a/src/test/outOfSchool.js b/src/test/outOfSchool.js
new file mode 100644
index 0000000000000000000000000000000000000000..bd265f39fc6d7f445648d5f562c2f178df44a66d
--- /dev/null
+++ b/src/test/outOfSchool.js
@@ -0,0 +1,232 @@
+/*
+Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
+
+This file is part of simcaq-node.
+
+simcaq-node is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+simcaq-node is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with simcaq-node.  If not, see <https://www.gnu.org/licenses/>.
+*/
+
+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;
+
+const expect = chai.expect;
+
+const should = chai.should(); // actually call the function
+
+const libs = `${process.cwd()}/libs`;
+
+const server = require(`${libs}/app`);
+
+chai.use(chaiHttp);
+
+describe('request out of school', () => {
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/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 years', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/years')
+            .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('year');
+                done();
+            });
+    });
+
+    it('should list the full age range', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/full_age_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('id');
+                res.body.result[0].should.have.property('name');
+                done();
+            });
+    });
+
+    it('should list the ethnic_group', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/ethnic_group')
+            .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 location', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/location')
+            .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 gender', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/gender')
+            .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 fifth household income', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/fifth_household_income')
+            .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 extremes household income', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/extremes_household_income')
+            .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 default query out of school', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school')
+            .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('total');
+                res.body.result[0].should.have.property('year');
+                done();
+            });
+    });
+
+    it('should list out of school with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school?filter=max_year:2010')
+            .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('year');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list the simcaq default query for out of school', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/simcaq')
+            .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('total');
+                res.body.result[0].should.have.property('ano_censo');
+                done();
+            });
+    });
+
+    it('should list simcaq out of school with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/simcaq?filter=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('ano_censo');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list simcaq out of school with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/out_of_school/simcaq?dims=state,pfe')
+            .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('pfe_id');
+                res.body.result[0].should.have.property('pfe_name');
+                res.body.result[0].should.have.property('ano_censo');
+                res.body.result[0].should.have.property('total');
+                res.body.result[0].should.have.property('state_id');
+                done();
+            });
+    });
+
+});
\ No newline at end of file
diff --git a/src/test/schoolInfrastructure.js b/src/test/schoolInfrastructure.js
new file mode 100644
index 0000000000000000000000000000000000000000..f167fb1ff2aa7521a5018066e40616ff5b56f10b
--- /dev/null
+++ b/src/test/schoolInfrastructure.js
@@ -0,0 +1,183 @@
+/*
+Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
+
+This file is part of simcaq-node.
+
+simcaq-node is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+simcaq-node is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with simcaq-node.  If not, see <https://www.gnu.org/licenses/>.
+*/
+
+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;
+
+const expect = chai.expect;
+
+const should = chai.should(); // actually call the function
+
+const libs = `${process.cwd()}/libs`;
+
+const server = require(`${libs}/app`);
+
+chai.use(chaiHttp);
+describe('request school infrastructure', () => {
+    it('should list the default school insfrastructure query', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure')
+            .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('schools_in_school_buildings');
+                res.body.result[0].should.have.property('urban_schools_in_school_buildings');
+                res.body.result[0].should.have.property('country_schools_in_school_buildings');
+                res.body.result[0].should.have.property('schools_not_in_school_buildings');
+                res.body.result[0].should.have.property('libraries');
+                res.body.result[0].should.have.property('libraries_reading_room');
+                res.body.result[0].should.have.property('computer_lab');
+                res.body.result[0].should.have.property('science_lab');
+                res.body.result[0].should.have.property('kids_park');
+                res.body.result[0].should.have.property('nursery');
+                res.body.result[0].should.have.property('sports_court');
+                res.body.result[0].should.have.property('sports_court_coverage');
+                res.body.result[0].should.have.property('courtyard');
+                res.body.result[0].should.have.property('courtyard_coverage');
+                res.body.result[0].should.have.property('director_room');
+                res.body.result[0].should.have.property('secretary');
+                res.body.result[0].should.have.property('teacher_room');
+                res.body.result[0].should.have.property('kitchen');
+                res.body.result[0].should.have.property('storeroom');
+                res.body.result[0].should.have.property('warehouse');
+                res.body.result[0].should.have.property('internet');
+                res.body.result[0].should.have.property('broadband_internet');
+                res.body.result[0].should.have.property('inside_bathroom');
+                res.body.result[0].should.have.property('inside_kids_bathroom');
+                res.body.result[0].should.have.property('eletric_energy');
+                res.body.result[0].should.have.property('water_supply');
+                res.body.result[0].should.have.property('filtered_water');
+                res.body.result[0].should.have.property('sewage_treatment');
+                res.body.result[0].should.have.property('adapted_building');
+                res.body.result[0].should.have.property('special_bathroom');
+                done();
+            });
+    });
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/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 years', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/years')
+            .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('year');
+                done();
+            });
+    });
+
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/source')
+            .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('source');
+                done();
+            });
+    });
+
+    it('should list the location', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/location')
+            .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 rural location', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/rural_location')
+            .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 adm dependency', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/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 the adm dependency detailed', (done) => {
+        chai.request(server)
+            .get('/api/v1/school_infrastructure/adm_dependency_detailed')
+            .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();
+            });
+    });
+});
\ No newline at end of file
diff --git a/src/test/transport.js b/src/test/transport.js
index 39374999c557c42b9019c7fce736439ce601d290..217d688f51abfadfcf3d1d14aee2dccfc9d0b4f6 100644
--- a/src/test/transport.js
+++ b/src/test/transport.js
@@ -57,7 +57,7 @@ describe('request transport', () => {
             });
     });
 
-    it('should list the year range', (done) => {
+    it('should list the years', (done) => {
         chai.request(server)
             .get('/api/v1/transport/years')
             .end((err, res) => {
@@ -70,7 +70,7 @@ describe('request transport', () => {
             });
     });
 
-    it('should list the years', (done) => {
+    it('should list the year range', (done) => {
         chai.request(server)
             .get('/api/v1/transport/year_range')
             .end((err, res) => {
@@ -181,4 +181,18 @@ describe('request transport', () => {
             });
     });
 
+    it('should list the service type', (done) => {
+        chai.request(server)
+            .get('/api/v1/transport/service_type')
+            .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();
+            });
+    });
+
 });