diff --git a/test/test.js b/test/test.js
index 67c3337ece134c4da24791647fce4df4b46452af..a9b67bb2269983afbbe479cd72fea744330e81da 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();
+      })
+  });
+
+});