From 3ac123d34b5ccfd5f88fc902fd6ee78ff6397a2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Victor=20Frans=20Pondaco=20Winandy?= <jvfpw18@inf.ufpr.br> Date: Tue, 12 Feb 2019 08:15:45 -0200 Subject: [PATCH] Add new tests --- src/libs/routes/transport.js | 10 - src/test/class.js | 4 +- src/test/classCount.js | 318 ++++++++++++++++++++++++++++++ src/test/cub.js | 31 +++ src/test/dailyChargeAmount.js | 113 ++++++++++- src/test/employees.js | 215 ++++++++++++++++++++ src/test/enrollment.js | 14 ++ src/test/glossEnrollmentRatio.js | 13 ++ src/test/liquidEnrollmentRatio.js | 32 +++ src/test/outOfSchool.js | 232 ++++++++++++++++++++++ src/test/schoolCount.js | 56 +++--- src/test/transport.js | 18 +- 12 files changed, 1013 insertions(+), 43 deletions(-) create mode 100644 src/test/classCount.js create mode 100644 src/test/employees.js create mode 100644 src/test/outOfSchool.js diff --git a/src/libs/routes/transport.js b/src/libs/routes/transport.js index b286c001..6435833b 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 a10ee1f1..dd283b55 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 00000000..9880db28 --- /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 ea6c0d68..475e718f 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 20fb9aea..2c37d274 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 00000000..2eff61c4 --- /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 af5f50a1..066a23a2 100644 --- a/src/test/enrollment.js +++ b/src/test/enrollment.js @@ -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 562244cb..39859b70 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 bbea4bb6..b61a8d8f 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 00000000..bd265f39 --- /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/schoolCount.js b/src/test/schoolCount.js index 839415ab..ebdcd8ef 100644 --- a/src/test/schoolCount.js +++ b/src/test/schoolCount.js @@ -199,22 +199,22 @@ describe('request schools count', () => { }); }); - it('should list school with valid dimensions and filters', (done) => { - chai.request(server) - .get('/api/v1/school/count?dims=location,adm_dependency,government_agreement') - .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('location_name'); - res.body.result[0].should.have.property('adm_dependency_name'); - res.body.result[0].should.have.property('government_agreement_name'); - res.body.result[0].should.have.property('total'); - res.body.result[0].should.have.property('year'); - done(); - }); - }); + // it('should list school with valid dimensions and filters', (done) => { + // chai.request(server) + // .get('/api/v1/school/count?dims=location,adm_dependency,government_agreement') + // .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('location_name'); + // res.body.result[0].should.have.property('adm_dependency_name'); + // res.body.result[0].should.have.property('government_agreement_name'); + // res.body.result[0].should.have.property('total'); + // res.body.result[0].should.have.property('year'); + // done(); + // }); + // }); it('should list school with valid dimensions and filters', (done) => { chai.request(server) @@ -309,18 +309,18 @@ describe('request schools count', () => { }); }); - it('should list school with dimension rural_location', (done) => { - chai.request(server) - .get('/api/v1/school/count?dims=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('location_name'); - done(); - }); - }); + // it('should list school with dimension rural_location', (done) => { + // chai.request(server) + // .get('/api/v1/school/count?dims=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('location_name'); + // done(); + // }); + // }); it('should list school with dimension agreement', (done) => { chai.request(server) diff --git a/src/test/transport.js b/src/test/transport.js index 39374999..217d688f 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(); + }); + }); + }); -- GitLab