var geojsonify = require('../../../helper/geojsonify'); module.exports.tests = {}; module.exports.tests.interface = function(test, common) { test('valid interface .search()', function(t) { t.equal(typeof geojsonify.search, 'function', 'search is a function'); t.equal(geojsonify.search.length, 1, 'accepts x arguments'); t.end(); }); }; module.exports.tests.search = function(test, common) { var input = [ { "_id": "id1", "_type": "type1", "center_point": { "lat": 51.5337144, "lon": -0.1069716 }, "name": { "default": "'Round Midnight Jazz and Blues Bar" }, "type": "node", "address": { "number": "13", "street": "Liverpool Road", "zip": "N1 0RW" }, "alpha3": "GBR", "admin0": "United Kingdom", "admin1": "Islington", "admin1_abbr": "ISL", "admin2": "Angel", "local_admin": "test1", "locality": "test2", "neighborhood": "test3", "suggest": { "input": [ "'round midnight jazz and blues bar" ], "output": "osmnode:2208150035" } }, { "_id": "id2", "_type": "type2", "type": "way", "name": { "default": "Blues Cafe" }, "center_point": { "lat": "51.517806", "lon": "-0.101795" }, "alpha3": "GBR", "admin0": "United Kingdom", "admin1": "City And County Of The City Of London", "admin1_abbr": "COL", "admin2": "Smithfield", "local_admin": "test1", "locality": "test2", "neighborhood": "test3", "suggest": { "input": [ "blues cafe" ], "output": "osmway:147495160" } }, { "_id": "34633854", "_type": "osmway", "type": "osmway", "name": { "default": "Empire State Building" }, "center_point": { "lat": "40.748432", "lon": "-73.985656" }, "alpha3": "USA", "admin0": "United States", "admin1": "New York", "admin1_abbr": "NY", "admin2": "New York", "local_admin": "Manhattan", "locality": "New York", "neighborhood": "Koreatown", "suggest": { "input": [ "empire state building" ], "output": "osmway:34633854" } } ]; var expected = { "type": "FeatureCollection", "bbox": [ -0.1069716, 51.517806, -0.101795, 51.5337144 ], "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -0.1069716, 51.5337144 ] }, "properties": { "id": "id1", "type": "type1", "layer": "type1", "text": "'Round Midnight Jazz and Blues Bar, test3, Angel", "name": "'Round Midnight Jazz and Blues Bar", "alpha3": "GBR", "admin0": "United Kingdom", "admin1": "Islington", "admin1_abbr": "ISL", "admin2": "Angel", "local_admin": "test1", "locality": "test2", "neighborhood": "test3" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -0.101795, 51.517806 ] }, "properties": { "id": "id2", "type": "type2", "layer": "type2", "text": "Blues Cafe, test3, Smithfield", "name": "Blues Cafe", "alpha3": "GBR", "admin0": "United Kingdom", "admin1": "City And County Of The City Of London", "admin1_abbr": "COL", "admin2": "Smithfield", "local_admin": "test1", "locality": "test2", "neighborhood": "test3" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ -73.985656, 40.748432 ] }, "properties": { "id": "34633854", "type": "osmway", "layer": "osmway", "text": "Empire State Building, Manhattan, NY", "name": "Empire State Building", "alpha3": "USA", "admin0": "United States", "admin1": "New York", "admin1_abbr": "NY", "admin2": "New York", "local_admin": "Manhattan", "locality": "New York", "neighborhood": "Koreatown" } } ] }; test('geojsonify.search()', function(t) { var json = geojsonify.search( input ); t.deepEqual(json, expected, 'all docs mapped'); t.end(); }); }; module.exports.all = function (tape, common) { function test(name, testFunction) { return tape('geojsonify: ' + name, testFunction); } for( var testCase in module.exports.tests ){ module.exports.tests[testCase](test, common); } };