var generate = require('../../../query/search'); module.exports.tests = {}; module.exports.tests.interface = function(test, common) { test('valid interface', function(t) { t.equal(typeof generate, 'function', 'valid function'); t.end(); }); }; module.exports.tests.query = function(test, common) { test('valid query', function(t) { var query = generate({ input: 'test', size: 10, lat: 29.49136, lon: -82.50622, bbox: { bottom_left: { lat: 11.51053655297385, lon: -103.16362455862279 }, top_right: { lat: 47.472183447026154, lon: -61.84881544137721 } }, layers: ['test'] }); var expected = { "query": { "filtered": { "query": { "query_string": { "query": "test", "fields": [ "name.default" ], "default_operator": "OR" } }, "filter": { "bool": { "must": [ { "geo_distance": { "distance": "50km", "distance_type": "plane", "optimize_bbox": "indexed", "_cache": true, "center_point": { "lat": "29.49", "lon": "-82.51" } } } ] } } } }, "sort": [ { "_geo_distance": { "center_point": { "lat": 29.49136, "lon": -82.50622 }, "order": "asc", "unit": "km" } } ], "size": 10 }; t.deepEqual(query, expected, 'valid search query'); t.end(); }); }; module.exports.all = function (tape, common) { function test(name, testFunction) { return tape('search query ' + name, testFunction); } for( var testCase in module.exports.tests ){ module.exports.tests[testCase](test, common); } };