diff --git a/src/test/idhme.js b/src/test/idhme.js
new file mode 100644
index 0000000000000000000000000000000000000000..285160819ada0b77cde946c97ba56ffa0bcc48fd
--- /dev/null
+++ b/src/test/idhme.js
@@ -0,0 +1,80 @@
+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 the year range', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhme/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 idhme with valid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhme?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 idhme with invalid filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhme?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 return 400 with no filters', (done) => {
+        chai.request(server)
+            .get('/api/v1/idhme')
+            .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();
+            })
+    });
+
+});