From 0054f478f3a9439c733cfeab3cc538413015279b Mon Sep 17 00:00:00 2001
From: Lucas Gabriel Lima <lgl15@inf.ufpr.br>
Date: Wed, 27 Jul 2016 10:15:01 -0300
Subject: [PATCH] add tests for requesting states and cities

---
 test/test.js | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 102 insertions(+), 1 deletion(-)

diff --git a/test/test.js b/test/test.js
index 67c3337e..a9b67bb2 100644
--- a/test/test.js
+++ b/test/test.js
@@ -40,7 +40,7 @@ describe('request regions', function(){
       })
   });
 
-  it('should list a especific region', function(done){
+  it('should list region by id', function(done){
     chai.request(server)
       .get('/v1/regions/1')
       .end(function(err, res){
@@ -55,3 +55,104 @@ describe('request regions', function(){
       })
   });
 });
+
+describe('request states', function(){
+
+  it('should list all states', function(done){
+    chai.request(server)
+      .get('/v1/states')
+      .end(function(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('pk_estado_id');
+        res.body.result[0].should.have.property('fk_regiao_id');
+        res.body.result[0].should.have.property('nome');
+        done();
+      })
+  });
+
+  it('should list a state by id', function(done){
+    chai.request(server)
+      .get('/v1/states/11')
+      .end(function(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.should.have.length(1);
+        res.body.result[0].should.have.property('pk_estado_id');
+        res.body.result[0].should.have.property('fk_regiao_id');
+        res.body.result[0].should.have.property('nome');
+        done();
+      })
+  });
+
+  it('should list states by region id', function(done){
+    chai.request(server)
+      .get('/v1/states/region/1')
+      .end(function(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('pk_estado_id');
+        res.body.result[0].should.have.property('fk_regiao_id');
+        res.body.result[0].should.have.property('nome');
+        done();
+      })
+  });
+});
+
+describe('request cities', function(){
+
+  it('should list all cities', function(done){
+    chai.request(server)
+      .get('/v1/cities')
+      .end(function(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('pk_municipio_id');
+        res.body.result[0].should.have.property('fk_estado_id');
+        res.body.result[0].should.have.property('nome');
+        res.body.result[0].should.have.property('codigo_ibge');
+        done();
+      })
+  });
+
+  it('should list a city by id', function(done){
+    chai.request(server)
+      .get('/v1/cities/1')
+      .end(function(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('pk_municipio_id');
+        res.body.result[0].should.have.property('fk_estado_id');
+        res.body.result[0].should.have.property('nome');
+        res.body.result[0].should.have.property('codigo_ibge');
+        done();
+      })
+  });
+
+  it('should list a city by codigo_ibge', function(done){
+    chai.request(server)
+      .get('/v1/cities/ibge/1200013')
+      .end(function(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('pk_municipio_id');
+        res.body.result[0].should.have.property('fk_estado_id');
+        res.body.result[0].should.have.property('nome');
+        res.body.result[0].should.have.property('codigo_ibge');
+        done();
+      })
+  });
+
+});
-- 
GitLab