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 rate_school', () => { it('should list default query rate school', (done) => { chai.request(server) .get('/api/v1/rate_school') .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'); done(); }); }); it('should list the year range', (done) => { chai.request(server) .get('/api/v1/rate_school/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 source', (done) => { chai.request(server) .get('/api/v1/rate_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'); done(); }); }); it('should list the locations', (done) => { chai.request(server) .get('/api/v1/rate_school/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 ethnic groups', (done) => { chai.request(server) .get('/api/v1/rate_school/ethnic_group_pnad') .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 age range', (done) => { chai.request(server) .get('/api/v1/rate_school/age_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('id'); res.body.result[0].should.have.property('name'); done(); }); }); it('should list the gender', (done) => { chai.request(server) .get('/api/v1/rate_school/gender') .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 fifth household income', (done) => { chai.request(server) .get('/api/v1/rate_school/fifth_household_income') .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 extremes household income', (done) => { chai.request(server) .get('/api/v1/rate_school/extremes_household_income') .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'); done(); }); }); it('should list rate schools with dimension extremes household income', (done) => { chai.request(server) .get('/api/v1/rate_school?dims=extremes_household_income') .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('extremes_household_income_id'); res.body.result[0].should.have.property('total'); res.body.result[0].should.have.property('year'); res.body.result[0].should.have.property('partial'); res.body.result[0].should.have.property('denominator'); done(); }); }); it('should list rate schools with dimension fifth household income', (done) => { chai.request(server) .get('/api/v1/rate_school?dims=fifth_household_income') .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('fifth_household_income_id'); res.body.result[0].should.have.property('total'); res.body.result[0].should.have.property('year'); res.body.result[0].should.have.property('partial'); res.body.result[0].should.have.property('denominator'); done(); }); }); it('should list rate schools with dimension fifth household income', (done) => { chai.request(server) .get('/api/v1/rate_school?filter=region:[1,2],min_year:2015') .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('partial'); res.body.result[0].should.have.property('denominator'); done(); }); }); });