From 0544fc22a3cfa700c995bcf7e3a0b733f3703f1a Mon Sep 17 00:00:00 2001
From: Gabriel Ruschel <grc15@inf.ufpr.br>
Date: Thu, 20 Apr 2017 09:00:47 -0300
Subject: [PATCH] Add classroom route tests

---
 src/test/classroom.js | 223 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 223 insertions(+)
 create mode 100644 src/test/classroom.js

diff --git a/src/test/classroom.js b/src/test/classroom.js
new file mode 100644
index 00000000..54d058ae
--- /dev/null
+++ b/src/test/classroom.js
@@ -0,0 +1,223 @@
+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 classrooms', () => {
+
+    it('should list classrooms', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?filter=city:4106902')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?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('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?filter=region:4')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?filter=adm_dependency:3')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?filter=adm_dependency_detailed:5')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?filter=locality: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('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?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('city_name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?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('state_name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?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('region_name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?dims=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('adm_dependency_name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?dims=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('adm_dependency_detailed_name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with valid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/classroom?dims=locality')
+            .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('locality');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+
+    it('should list classrooms with invalid dimensions', (done) => {
+        chai.request(server)
+            .get('/api/v1/class?dims=foo,bar')
+            .end((err, res) => {
+                res.should.have.status(200);
+                res.should.be.json;
+                res.body.should.have.property('result');
+                res.body.result.should.be.a('array');
+                res.body.result[0].should.have.property('name');
+                res.body.result[0].should.have.property('total');
+                done();
+            });
+    });
+});
-- 
GitLab