queryfilters
Version:
queryfilters ============
69 lines (60 loc) • 2.62 kB
JavaScript
const QueryQl = require('./../lib/queryql');
test('apply filters with default operator', () => {
var queryQl = new QueryQl()
queryQl.applyFilter({ field: '_embedded.relation.nick', value: '@sensorario' });
queryQl.applyFilter({ field: '_embedded.foo.bar.name', value: 'Simone' });
expect(queryQl.keepDefaultCombinator().getQueryString()).toEqual(
'rel=relation,foo,bar'
+ '&filtering[_embedded.relation.nick]=@sensorario'
+ '&filtering[_embedded.foo.bar.name]=Simone'
);
});
test('apply filters with or filtering operator', () => {
var queryQl = new QueryQl()
queryQl.applyFilter({ field: '_embedded.relation.nick', value: '@sensorario' });
queryQl.applyFilter({ field: '_embedded.foo.bar.name', value: 'Simone' });
expect(queryQl.keepOrFilteringCombinator().getQueryString()).toEqual(
'rel=relation,foo,bar'
+ '&filtering_or[_embedded.relation.nick]=@sensorario'
+ '&filtering_or[_embedded.foo.bar.name]=Simone'
);
});
test('apply filters with or operator', () => {
var queryQl = new QueryQl()
queryQl.applyFilter({ field: '_embedded.relation.nick', value: '@sensorario' });
queryQl.applyFilter({ field: '_embedded.foo.bar.name', value: 'Simone' });
expect(queryQl.setCombinator('or').getQueryString()).toEqual(
'rel=relation,foo,bar'
+ '&or[_embedded.relation.nick]=@sensorario'
+ '&or[_embedded.foo.bar.name]=Simone'
);
});
test('apply filters with and operator', () => {
var queryQl = new QueryQl()
queryQl.applyFilter({ field: '_embedded.relation.nick', value: '@sensorario' });
queryQl.applyFilter({ field: '_embedded.foo.bar.name', value: 'Simone' });
expect(queryQl.setCombinator('and').getQueryString()).toEqual(
'rel=relation,foo,bar'
+ '&and[_embedded.relation.nick]=@sensorario'
+ '&and[_embedded.foo.bar.name]=Simone'
);
});
test('accept limited list of combinator', () => {
var queryQl = new QueryQl()
var catched = false;
try {
queryQl.setCombinator('invalid').getQueryString()
} catch (e) {
catched = true;
}
expect(catched).toEqual(true);
});
test('apply filters with default operator', () => {
var queryQl = new QueryQl()
queryQl.applyFilters([{ field: '_embedded.relation.nick', value: '@sensorario' }, { field: '_embedded.foo.bar.name', value: 'Simone' }]);
expect(queryQl.keepDefaultCombinator().getQueryString()).toEqual(
'rel=relation,foo,bar'
+ '&filtering[_embedded.relation.nick]=@sensorario'
+ '&filtering[_embedded.foo.bar.name]=Simone'
);
});