From da464a640d4fffb8a8ba70e87d64756059281027 Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Tue, 14 Nov 2017 10:03:19 -0200
Subject: [PATCH 1/3] Add some tests

---
 src/test/class.js        |  27 ++++++
 src/test/classroom.js    |  26 ++++++
 src/test/enrollment.js   |  13 +++
 src/test/idhm.js         | 101 +++++++++++++++++++++++
 src/test/idhme.js        |  13 +++
 src/test/idhml.js        |  13 +++
 src/test/idhmr.js        | 173 +++++++++++++++++++++++++--------------
 src/test/pibpercapita.js | 102 +++++++++++++++++++++++
 src/test/population.js   | 126 ++++++++++++++++++++++++++++
 src/test/school.js       |  14 ++++
 src/test/state.js        |  15 ++++
 src/test/teacher.js      |  13 +++
 12 files changed, 573 insertions(+), 63 deletions(-)
 create mode 100644 src/test/pibpercapita.js
 create mode 100644 src/test/population.js

diff --git a/src/test/class.js b/src/test/class.js
index 8b6039cc..ef5254f4 100644
--- a/src/test/class.js
+++ b/src/test/class.js
@@ -38,6 +38,19 @@ describe('request class', () => {
             });
     });
 
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/class/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 rural locations', (done) => {
         chai.request(server)
             .get('/api/v1/class/rural_location')
@@ -122,6 +135,20 @@ describe('request class', () => {
             });
     });
 
+    it('should list the periods', (done) => {
+        chai.request(server)
+            .get('/api/v1/class/integral_time')
+            .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 class', (done) => {
         chai.request(server)
             .get('/api/v1/class')
diff --git a/src/test/classroom.js b/src/test/classroom.js
index 08950d68..9a6fd00a 100644
--- a/src/test/classroom.js
+++ b/src/test/classroom.js
@@ -109,6 +109,32 @@ describe('request classrooms', () => {
             });
     });
 
+    it('should list classrooms with year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom/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 classrooms with year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom/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 classrooms with valid filters', (done) => {
         chai.request(server)
             .get('/api/v1/classroom?filter=region:4')
diff --git a/src/test/enrollment.js b/src/test/enrollment.js
index 7a3ffaea..2d35c63a 100644
--- a/src/test/enrollment.js
+++ b/src/test/enrollment.js
@@ -38,6 +38,19 @@ describe('request enrollments', () => {
             });
     });
 
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/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 locations', (done) => {
         chai.request(server)
             .get('/api/v1/enrollment/location')
diff --git a/src/test/idhm.js b/src/test/idhm.js
index 3b6eae6b..cea8893e 100644
--- a/src/test/idhm.js
+++ b/src/test/idhm.js
@@ -38,6 +38,56 @@ describe('request idhm', () => {
             });
     });
 
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhm/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 idhm levels', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhm/idhm_level')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('id');
+                res.body.result[0].should.have.property('name');
+                done();
+            });
+    });
+
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhm/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 return 400 with no filters', function (done) {
+        chai.request(server).get('/api/v1/idhm').end(function (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 idhm with valid filters', (done) => {
         chai.request(server)
             .get('/api/v1/idhm?filter=min_year:2000,state:41')
@@ -72,6 +122,22 @@ describe('request idhm', () => {
             });
     });
 
+    it('should list idhm with valid dims', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhm?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('total');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('state_id');
+                res.body.result[0].should.have.property('state_name');
+                done();
+            });
+    });
+
     it('should list idhm with valid filtes and dims', (done) => {
         chai.request(server)
             .get('/api/v1/idhm?filter=state:41&dims=idhm_level')
@@ -90,4 +156,39 @@ describe('request idhm', () => {
             })
     });
 
+    it('should list idhm with valid filtes and dims', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhm?filter=city:4100202')
+            .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('city_id');
+                res.body.result[0].should.have.property('state_id');
+                res.body.result[0].should.have.property('state_name');
+                done();
+            })
+    });
+
+    it('should list idhm with valid filtes and dims', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhm?dims=idhm_level,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('total');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('state_id');
+                res.body.result[0].should.have.property('state_name');
+                res.body.result[0].should.have.property('idhm_level_name');
+                res.body.result[0].should.have.property('idhm_level_id');
+                done();
+            })
+    });
+
 });
diff --git a/src/test/idhme.js b/src/test/idhme.js
index 4962c8a6..dc338d38 100644
--- a/src/test/idhme.js
+++ b/src/test/idhme.js
@@ -51,6 +51,19 @@ describe('request idhme', () => {
             });
     });
 
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhme/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 idhme with valid filters', (done) => {
         chai.request(server)
             .get('/api/v1/idhme?filter=min_year:2000,state:41')
diff --git a/src/test/idhml.js b/src/test/idhml.js
index 9ddf8f34..90312b06 100644
--- a/src/test/idhml.js
+++ b/src/test/idhml.js
@@ -51,6 +51,19 @@ describe('request idhml', () => {
             });
     });
 
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhml/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 idhml with valid filters', (done) => {
         chai.request(server)
             .get('/api/v1/idhml?filter=min_year:2000,state:41')
diff --git a/src/test/idhmr.js b/src/test/idhmr.js
index 3a737065..eb06b37d 100644
--- a/src/test/idhmr.js
+++ b/src/test/idhmr.js
@@ -24,68 +24,115 @@ const server = require(`${libs}/app`);
 
 chai.use(chaiHttp);
 describe('request idhmr', () => {
-  it('should list the year range', (done) => {
-      chai.request(server)
-          .get('/api/v1/idhmr/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 idhmr with valid filters', (done) => {
-      chai.request(server)
-          .get('/api/v1/idhmr?filter=min_year:2000,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('total');
-              res.body.result[0].should.have.property('year');
-              res.body.result[0].should.have.property('state_id');
-              res.body.result[0].should.have.property('state_name');
-              done();
-          });
-  });
-
-  it('should list idhmr with valid dims', (done) => {
-      chai.request(server)
-          .get('/api/v1/idhmr?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('total');
-              res.body.result[0].should.have.property('year');
-              res.body.result[0].should.have.property('state_id');
-              res.body.result[0].should.have.property('state_name');
-              done();
-          });
-  });
-
-  it('should list idhmr with valid filtes and dims', (done) => {
-      chai.request(server)
-          .get('/api/v1/idhm?filter=state:41&dims=city')
-          .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('city_id');
-              res.body.result[0].should.have.property('state_id');
-              res.body.result[0].should.have.property('city_name');
-              res.body.result[0].should.have.property('state_name');
-              done();
-          })
-  });
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr/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 source', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr/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 available years', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr/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 idhmr with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr?filter=min_year:2000,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('total');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('state_id');
+                done();
+            });
+    });
+
+    it('should list idhmr with invalid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr?filter=foo:2010,bar:41')
+            .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 idhmr with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr?dims=state&filter=min_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('total');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('state_id');
+                res.body.result[0].should.have.property('state_name');
+                done();
+            });
+    });
+
+    it('should list idhmr with valid filters and dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr?filter=state:41,min_year:2010&dims=city')
+            .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('city_id');
+                res.body.result[0].should.have.property('city_name');
+                done();
+            });
+    });
+
+    it('should return 400 with no filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhmr')
+            .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();
+            });
+    });
 
 });
diff --git a/src/test/pibpercapita.js b/src/test/pibpercapita.js
new file mode 100644
index 00000000..ca679a34
--- /dev/null
+++ b/src/test/pibpercapita.js
@@ -0,0 +1,102 @@
+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 pibpercapita', () => {
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/pibpercapita/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 year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/pibpercapita/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 pib to state', (done) => {
+        chai.request(server)
+            .get('/api/v1/pibpercapita?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('total');
+                res.body.result[0].should.have.property('year');
+                done();
+            });
+    });
+
+    it('should list the list pib to state and income level', (done) => {
+        chai.request(server)
+            .get('/api/v1/pibpercapita?filter=state:41&dims=income_level')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('total');
+                res.body.result[0].should.have.property('year');
+                res.body.result[0].should.have.property('income_level_name');
+                res.body.result[0].should.have.property('income_level_id');
+                done();
+            });
+    });
+
+    city:4102802
+        it('should list the pib to city', (done) => {
+            chai.request(server)
+                .get('/api/v1/pibpercapita?filter=city=4102802')
+                .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();
+                });
+        });
+
+
+});
diff --git a/src/test/population.js b/src/test/population.js
new file mode 100644
index 00000000..37be404f
--- /dev/null
+++ b/src/test/population.js
@@ -0,0 +1,126 @@
+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 population', () => {
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/population/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 year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/population/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 default population', (done) => {
+        chai.request(server)
+            .get('/api/v1/population')
+            .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 default population', (done) => {
+        chai.request(server)
+            .get('/api/v1/population/city_size')
+            .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 population with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/population?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('total');
+                res.body.result[0].should.have.property('year');
+                done();
+            });
+    });
+
+    it('should list population with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/population?filter=city:4102802')
+            .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 the city size dims', (done) => {
+        chai.request(server)
+            .get('/api/v1/population?dims=city_size')
+            .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('city_size_id');
+                res.body.result[0].should.have.property('city_size_name');
+                done();
+            });
+    });
+
+});
diff --git a/src/test/school.js b/src/test/school.js
index 7684e273..266c5428 100644
--- a/src/test/school.js
+++ b/src/test/school.js
@@ -40,6 +40,20 @@ describe('request schools', () => {
             });
     });
 
+    it('should list a school by id', (done) => {
+        chai.request(server)
+            .get('/api/v1/school/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');
+                //res.body.result[0].should.have.property('nome_entidade');
+                done();
+            });
+    });
+
     it('should list all schools from a state', (done) => {
         chai.request(server)
             .get('/api/v1/school?filter=state:41')
diff --git a/src/test/state.js b/src/test/state.js
index df45900d..5cea7a4f 100644
--- a/src/test/state.js
+++ b/src/test/state.js
@@ -72,6 +72,21 @@ describe('request states', () => {
             });
     });
 
+    it('should list states by region id', (done) => {
+        chai.request(server)
+            .get('/api/v1/state?filter=region:1,region: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('id');
+                res.body.result[0].should.have.property('region_id');
+                res.body.result[0].should.have.property('name');
+                done();
+            });
+    });
+
     it('should search for Paraná', (done) => {
         chai.request(server)
             .get('/api/v1/state?search=name:paran')
diff --git a/src/test/teacher.js b/src/test/teacher.js
index 645934d2..77cc39da 100644
--- a/src/test/teacher.js
+++ b/src/test/teacher.js
@@ -38,6 +38,19 @@ describe('request teachers', () => {
             });
     });
 
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/teacher/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 locations', (done) => {
         chai.request(server)
             .get('/api/v1/teacher/location')
-- 
GitLab


From d4d8bea5cf62de835354415a60c3439df930d383 Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Tue, 14 Nov 2017 11:01:14 -0200
Subject: [PATCH 2/3] Add some tests

---
 src/test/enrollment.js     |  13 ++++
 src/test/infrastructure.js | 122 +++++++++++++++++++++++++++++++++++++
 src/test/teacher.js        |  13 ++++
 3 files changed, 148 insertions(+)
 create mode 100644 src/test/infrastructure.js

diff --git a/src/test/enrollment.js b/src/test/enrollment.js
index 2d35c63a..1ca9fac5 100644
--- a/src/test/enrollment.js
+++ b/src/test/enrollment.js
@@ -51,6 +51,19 @@ describe('request enrollments', () => {
             });
     });
 
+    it('should list the years', (done) => {
+        chai.request(server)
+            .get('/api/v1/enrollment/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('years');
+                done();
+            });
+    });
+
     it('should list the locations', (done) => {
         chai.request(server)
             .get('/api/v1/enrollment/location')
diff --git a/src/test/infrastructure.js b/src/test/infrastructure.js
new file mode 100644
index 00000000..43b4a7c9
--- /dev/null
+++ b/src/test/infrastructure.js
@@ -0,0 +1,122 @@
+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 idhme', () => {
+    it('should list default query infrastructure', (done) => {
+        chai.request(server)
+            .get('/api/v1/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('school_place');
+                done();
+            });
+    });
+
+    it('should list the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/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('years');
+                done();
+            });
+    });
+
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/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 locations detailed', (done) => {
+        chai.request(server)
+            .get('/api/v1/infrastructure/location_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/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 source', (done) => {
+        chai.request(server)
+            .get('/api/v1/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();
+            });
+    });
+
+    it('should list the source', (done) => {
+        chai.request(server)
+            .get('/api/v1/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();
+            });
+    });
+
+});
diff --git a/src/test/teacher.js b/src/test/teacher.js
index 77cc39da..23d9eca6 100644
--- a/src/test/teacher.js
+++ b/src/test/teacher.js
@@ -65,6 +65,19 @@ describe('request teachers', () => {
             });
     });
 
+    it('should list the locations', (done) => {
+        chai.request(server)
+            .get('/api/v1/teacher/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('years');
+                done();
+            });
+    });
+
     it('should list the rural locations', (done) => {
         chai.request(server)
             .get('/api/v1/teacher/rural_location')
-- 
GitLab


From b044052af706bf3156f225207f0089a20d55b0c8 Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Tue, 14 Nov 2017 11:24:35 -0200
Subject: [PATCH 3/3] fix tests

---
 src/test/enrollment.js     | 2 +-
 src/test/infrastructure.js | 2 +-
 src/test/teacher.js        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/test/enrollment.js b/src/test/enrollment.js
index 1ca9fac5..997e5f70 100644
--- a/src/test/enrollment.js
+++ b/src/test/enrollment.js
@@ -59,7 +59,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('years');
+                res.body.result[0].should.have.property('year');
                 done();
             });
     });
diff --git a/src/test/infrastructure.js b/src/test/infrastructure.js
index 43b4a7c9..38dee0e2 100644
--- a/src/test/infrastructure.js
+++ b/src/test/infrastructure.js
@@ -45,7 +45,7 @@ describe('request idhme', () => {
                 res.should.be.json;
                 res.body.should.have.property('result');
                 res.body.result.should.be.a('array');
-                res.body.result[0].should.have.property('years');
+                res.body.result[0].should.have.property('year');
                 done();
             });
     });
diff --git a/src/test/teacher.js b/src/test/teacher.js
index 23d9eca6..65c9d28d 100644
--- a/src/test/teacher.js
+++ b/src/test/teacher.js
@@ -73,7 +73,7 @@ describe('request teachers', () => {
                 res.should.be.json;
                 res.body.should.have.property('result');
                 res.body.result.should.be.a('array');
-                res.body.result[0].should.have.property('years');
+                res.body.result[0].should.have.property('year');
                 done();
             });
     });
-- 
GitLab