import { includeFormatter } from '../includeFormatter' describe('includeFormatter', () => { test('should return include without field', () => { //Given const includes = { include: ['house'], } //When const res = includeFormatter(includes) //Then expect(res).toBe('include=house') }) test('should return one include and field', () => { //Given const includes = { include: ['house'], fields: { contract: ['currency'], }, } //When const res = includeFormatter(includes) //Then expect(res).toBe('include=house&fields[contract]=currency') }) test('should return many includes and fields', () => { //Given const includes = { include: ['house', 'house.destination', 'house.destination.country'], fields: { contract: [ 'currency', 'negociatedFee', 'clientAddress', 'clientCity', 'clientCountry', 'clientCompanyName', 'clientFirstname', 'clientLastname', 'clientPostalCode', 'clientCompanyAddress', 'clientCompanyCity', 'clientCompanyCountry', 'clientCompanyCountry', 'clientCompanyRepresentativeFirstname', 'clientCompanyRepresentativeLastname', 'clientCompanyPostalCode', ], destination: ['name', 'isCountry'], house: ['id'], }, } //When const res = includeFormatter(includes) //Then expect(res).toBe( 'include=house,house.destination,house.destination.country' + '&fields[contract]=currency,negociatedFee,clientAddress,clientCity,clientCountry,clientCompanyName,clientFirstname,clientLastname,clientPostalCode,clientCompanyAddress,clientCompanyCity,clientCompanyCountry,clientCompanyCountry,clientCompanyRepresentativeFirstname,clientCompanyRepresentativeLastname,clientCompanyPostalCode' + '&fields[destination]=name,isCountry' + '&fields[house]=id', ) }) test('should return only fields', () => { //Given const includes = { fields: { contract: [ 'currency', 'negociatedFee', 'clientAddress', 'clientCity', 'clientCountry', 'clientCompanyName', 'clientFirstname', 'clientLastname', 'clientPostalCode', 'clientCompanyAddress', 'clientCompanyCity', 'clientCompanyCountry', 'clientCompanyCountry', 'clientCompanyRepresentativeFirstname', 'clientCompanyRepresentativeLastname', 'clientCompanyPostalCode', ], destination: ['name', 'isCountry'], house: ['id'], }, } //When const res = includeFormatter(includes) //Then expect(res).toBe( 'fields[contract]=currency,negociatedFee,clientAddress,clientCity,clientCountry,clientCompanyName,clientFirstname,clientLastname,clientPostalCode,clientCompanyAddress,clientCompanyCity,clientCompanyCountry,clientCompanyCountry,clientCompanyRepresentativeFirstname,clientCompanyRepresentativeLastname,clientCompanyPostalCode' + '&fields[destination]=name,isCountry' + '&fields[house]=id', ) }) })