UNPKG

rested

Version:

{REST}ed; {REST}ful Enterprise Data-as-a-Service (DaaS)

44 lines (36 loc) 1.81 kB
const supertest = require('supertest'); const fixture = require('./fixtures/countries'); describe('Select', () => { beforeAll(fixture.init); afterAll(fixture.deinit); const request = () => supertest(fixture.app()); it('select an aliased field', () => request().get('/api/countries/USA') .query({ select: 'regionName' }) .expect(200, { region: { name: 'Americas' }, _id: 'USA' })) it('select an aliased field without id', () => request().get('/api/countries/USA') .query({ select: '-_id regionName' }) .expect(200, { region: { name: 'Americas' } })) it('select an aliased field with original field', () => request().get('/api/countries/USA') .query({ select: '-_id regionName region.name' }) .expect(200, { region: { name: 'Americas' } })) it('deselect an aliased field with original field', () => request().get('/api/countries/USA') .query({ select: '-_id -regionName -region.name' }) .expect(200) .then(({ body }) => { expect(body).not.toHaveProperty('names'); expect(body).toHaveProperty('region'); expect(body.region).not.toHaveProperty('name'); })) it('select using an object with numbers', () => request().get('/api/countries/USA') .query({ select: { _id: 0, regionName: 1, 'region.name': 1 } }) .expect(200, { region: { name: 'Americas' } })) it('select using an object with booleans', () => request().get('/api/countries/USA') .query({ select: { _id: false, regionName: true, 'region.name': true } }) .expect(200, { region: { name: 'Americas' } })) });