diff --git a/test/unit/fixture/autocomplete_custom_boosts.js b/test/unit/fixture/autocomplete_custom_boosts.js new file mode 100644 index 000000000..c1bfc246a --- /dev/null +++ b/test/unit/fixture/autocomplete_custom_boosts.js @@ -0,0 +1,96 @@ +module.exports = { + 'type': 'autocomplete', + 'body': { + 'query': { + 'bool': { + 'must': [ + { + 'multi_match': { + 'fields': ['phrase.default', 'phrase.en'], + 'analyzer': 'peliasQuery', + 'query': 'foo', + 'boost': 1, + 'type': 'phrase', + 'slop': 3 + } + } + ], + 'should': [ + { + 'function_score': { + 'query': { + 'match_all': {} + }, + 'max_boost': 20, + 'functions': [ + { + 'field_value_factor': { + 'modifier': 'log1p', + 'field': 'popularity', + 'missing': 1 + }, + 'weight': 1 + } + ], + 'score_mode': 'first', + 'boost_mode': 'replace' + } + }, + { + 'function_score': { + 'query': { + 'match_all': {} + }, + 'max_boost': 20, + 'functions': [ + { + 'field_value_factor': { + 'modifier': 'log1p', + 'field': 'population', + 'missing': 1 + }, + 'weight': 3 + } + ], + 'score_mode': 'first', + 'boost_mode': 'replace' + } + }, + { + 'function_score': { + 'query': { + 'match_all': {} + }, + 'min_score': 1, + 'boost': 5, + 'max_boost': 50, + 'score_mode': 'sum', + 'boost_mode': 'multiply', + 'functions': [ + { + 'filter': { + 'match': { + 'source': 'openstreetmap' + } + }, + 'weight': 5 + }, + { + 'filter': { + 'match': { + 'layer': 'transit' + } + }, + 'weight': 3 + } + ] + } + } + ] + } + }, + 'size': 10, + 'track_scores': true, + 'sort': ['_score'] + } +}; diff --git a/test/unit/fixture/autocomplete_custom_boosts.json b/test/unit/fixture/autocomplete_custom_boosts.json deleted file mode 100644 index 556f1452b..000000000 --- a/test/unit/fixture/autocomplete_custom_boosts.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "autocomplete", - "body": { - "query": { - "bool": { - "must": [ - { - "multi_match": { - "fields": ["phrase.default", "phrase.en"], - "analyzer": "peliasQuery", - "query": "foo", - "boost": 1, - "type": "phrase", - "slop": 3 - } - } - ], - "should": [ - { - "function_score": { - "query": { - "match_all": {} - }, - "max_boost": 20, - "functions": [ - { - "field_value_factor": { - "modifier": "log1p", - "field": "popularity", - "missing": 1 - }, - "weight": 1 - } - ], - "score_mode": "first", - "boost_mode": "replace" - } - }, - { - "function_score": { - "query": { - "match_all": {} - }, - "max_boost": 20, - "functions": [ - { - "field_value_factor": { - "modifier": "log1p", - "field": "population", - "missing": 1 - }, - "weight": 3 - } - ], - "score_mode": "first", - "boost_mode": "replace" - } - },{ - "function_score": { - "query": { - "match_all": {} - }, - "min_score": 1, - "boost": 5, - "max_boost": 50, - "score_mode": "sum", - "boost_mode": "multiply", - "functions": [{ - "filter": { - "match": { - "source": "openstreetmap" - } - }, - "weight": 5 - },{ - "filter": { - "match": { - "layer": "transit" - } - }, - "weight": 3 - }] - } - } - ] - } - }, - "size": 10, - "track_scores": true, - "sort": [ - "_score" - ] - } -} diff --git a/test/unit/fixture/search_with_custom_boosts.js b/test/unit/fixture/search_with_custom_boosts.js new file mode 100644 index 000000000..905404993 --- /dev/null +++ b/test/unit/fixture/search_with_custom_boosts.js @@ -0,0 +1,105 @@ +module.exports = { + 'type': 'search_pelias_parser', + 'body': { + 'query': { + 'bool': { + 'must': [ + { + 'match': { + 'phrase.default': { + 'query': 'test', + 'minimum_should_match': '1<-1 3<-25%', + 'analyzer': 'peliasQuery' + } + } + } + ], + 'should': [ + { + 'match_phrase': { + 'phrase.default': { + 'query': 'test', + 'analyzer': 'peliasPhrase', + 'boost': 1, + 'slop': 2 + } + } + }, + { + 'function_score': { + 'query': { + 'match_all': {} + }, + 'max_boost': 20, + 'score_mode': 'first', + 'boost_mode': 'replace', + 'functions': [ + { + 'field_value_factor': { + 'modifier': 'log1p', + 'field': 'popularity', + 'missing': 1 + }, + 'weight': 1 + } + ] + } + }, + { + 'function_score': { + 'query': { + 'match_all': {} + }, + 'max_boost': 20, + 'score_mode': 'first', + 'boost_mode': 'replace', + 'functions': [ + { + 'field_value_factor': { + 'modifier': 'log1p', + 'field': 'population', + 'missing': 1 + }, + 'weight': 2 + } + ] + } + }, + { + 'function_score': { + 'query': { + 'match_all': {} + }, + 'min_score': 1, + 'boost': 5, + 'max_boost': 50, + 'score_mode': 'sum', + 'boost_mode': 'multiply', + 'functions': [ + { + 'filter': { + 'match': { + 'source': 'openstreetmap' + } + }, + 'weight': 5 + }, + { + 'filter': { + 'match': { + 'layer': 'transit' + } + }, + 'weight': 3 + } + ] + } + } + ] + } + }, + 'sort': ['_score'], + 'size': 10, + 'track_scores': true + } +}; diff --git a/test/unit/fixture/search_with_custom_boosts.json b/test/unit/fixture/search_with_custom_boosts.json deleted file mode 100644 index 924fda28a..000000000 --- a/test/unit/fixture/search_with_custom_boosts.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "type": "search_pelias_parser", - "body": { - "query": { - "bool": { - "must": [{ - "match": { - "phrase.default": { - "query": "test", - "minimum_should_match": "1<-1 3<-25%", - "analyzer": "peliasQuery" - } - } - }], - "should": [{ - "match_phrase": { - "phrase.default": { - "query": "test", - "analyzer": "peliasPhrase", - "boost": 1, - "slop": 2 - } - } - },{ - "function_score": { - "query": { - "match_all": { } - }, - "max_boost": 20, - "score_mode": "first", - "boost_mode": "replace", - "functions": [{ - "field_value_factor": { - "modifier": "log1p", - "field": "popularity", - "missing": 1 - }, - "weight": 1 - }] - } - },{ - "function_score": { - "query": { - "match_all": { } - }, - "max_boost": 20, - "score_mode": "first", - "boost_mode": "replace", - "functions": [{ - "field_value_factor": { - "modifier": "log1p", - "field": "population", - "missing": 1 - }, - "weight": 2 - }] - } - },{ - "function_score": { - "query": { - "match_all": {} - }, - "min_score": 1, - "boost": 5, - "max_boost": 50, - "score_mode": "sum", - "boost_mode": "multiply", - "functions": [{ - "filter": { - "match": { - "source": "openstreetmap" - } - }, - "weight": 5 - },{ - "filter": { - "match": { - "layer": "transit" - } - }, - "weight": 3 - }] - } - }] - } - }, - "sort": [ "_score" ], - "size": 10, - "track_scores": true - } -} diff --git a/test/unit/query/autocomplete.js b/test/unit/query/autocomplete.js index 4651502f1..09e4deb7f 100644 --- a/test/unit/query/autocomplete.js +++ b/test/unit/query/autocomplete.js @@ -32,7 +32,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_only'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_only'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_only'); t.end(); }); @@ -48,7 +48,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_multiple_tokens'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_multiple_tokens'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_multiple_tokens'); t.end(); }); @@ -65,7 +65,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_multiple_tokens_complete_numeric'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_multiple_tokens_complete_numeric'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_multiple_tokens_complete_numeric'); t.end(); }); @@ -86,7 +86,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_with_admin'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_with_admin'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_with_admin'); t.end(); }); @@ -105,7 +105,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_final_token'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_final_token'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_final_token'); t.end(); }); @@ -143,7 +143,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_one_char_token'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_one_char_token'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_one_char_token'); t.end(); }); @@ -160,7 +160,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_two_char_token'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_two_char_token'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_two_char_token'); t.end(); }); @@ -176,7 +176,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_three_char_token'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_three_char_token'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_three_char_token'); t.end(); }); @@ -196,7 +196,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_focus'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_focus'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_focus'); t.end(); }); @@ -214,7 +214,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_focus_null_island'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_focus_null_island'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_focus_null_island'); t.end(); }); @@ -231,7 +231,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_with_source_filtering'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'valid autocomplete query with source filtering'); + common.deepEqual(t, compiled.body, expected, 'valid autocomplete query with source filtering'); t.end(); }); @@ -248,7 +248,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_with_layer_filtering'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'valid autocomplete query with layer filtering'); + common.deepEqual(t, compiled.body, expected, 'valid autocomplete query with layer filtering'); t.end(); }); @@ -267,7 +267,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_with_category_filtering'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'valid autocomplete query with category filtering'); + common.deepEqual(t, compiled.body, expected, 'valid autocomplete query with category filtering'); t.end(); }); @@ -289,7 +289,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_single_character_street'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_single_character_street'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_single_character_street'); t.end(); }); @@ -306,7 +306,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_boundary_country'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete: valid boundary.country query'); + common.deepEqual(t, compiled.body, expected, 'autocomplete: valid boundary.country query'); t.end(); }); @@ -326,7 +326,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_bbox_san_francisco'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete_linguistic_bbox_san_francisco'); + common.deepEqual(t, compiled.body, expected, 'autocomplete_linguistic_bbox_san_francisco'); t.end(); }); @@ -345,7 +345,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_linguistic_circle_san_francisco'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'query matches autocomplete_linguistic_circle_san_francisco fixture'); + common.deepEqual(t, compiled.body, expected, 'query matches autocomplete_linguistic_circle_san_francisco fixture'); t.end(); }); @@ -362,7 +362,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/autocomplete_boundary_gid'); t.deepEqual(compiled.type, 'autocomplete', 'query type set'); - t.deepEqual(compiled.body, expected, 'autocomplete: valid boundary.gid query'); + common.deepEqual(t, compiled.body, expected, 'autocomplete: valid boundary.gid query'); t.end(); }); }; diff --git a/test/unit/query/autocomplete_with_custom_boosts.js b/test/unit/query/autocomplete_with_custom_boosts.js index 3cc38ef8d..705ad53a8 100644 --- a/test/unit/query/autocomplete_with_custom_boosts.js +++ b/test/unit/query/autocomplete_with_custom_boosts.js @@ -32,7 +32,7 @@ module.exports.tests.query = function(test, common) { } }; - var expected_query = require('../fixture/autocomplete_custom_boosts.json'); + var expected_query = require('../fixture/autocomplete_custom_boosts'); const autocomplete_query_module = proxyquire('../../../query/autocomplete', { 'pelias-config': config_with_boosts @@ -40,7 +40,7 @@ module.exports.tests.query = function(test, common) { const actual_query = JSON.parse( JSON.stringify( autocomplete_query_module(clean) ) ); - t.deepEqual(actual_query, expected_query, 'autocomplete_custom_boosts'); + common.deepEqual(t, actual_query, expected_query, 'autocomplete_custom_boosts'); t.pass(); t.end(); }); diff --git a/test/unit/query/search.js b/test/unit/query/search.js index 5dac3bd93..069cd52c3 100644 --- a/test/unit/query/search.js +++ b/test/unit/query/search.js @@ -32,7 +32,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_linguistic_focus_bbox'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_focus_bbox'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_focus_bbox'); t.end(); }); @@ -56,7 +56,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_linguistic_bbox'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_bbox'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_bbox'); t.end(); }); @@ -75,7 +75,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_linguistic_only'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_only'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_only'); t.end(); }); @@ -95,7 +95,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_linguistic_focus'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_focus'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_focus'); t.end(); }); @@ -115,7 +115,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_linguistic_focus_null_island'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_focus_null_island'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_focus_null_island'); t.end(); }); @@ -142,7 +142,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_fallback'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'fallbackQuery'); + common.deepEqual(t, compiled.body, expected, 'fallbackQuery'); t.end(); }); @@ -181,7 +181,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_boundary_country'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid boundary.country query'); + common.deepEqual(t, compiled.body, expected, 'search: valid boundary.country query'); t.end(); }); @@ -201,7 +201,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_boundary_country_multi'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid multi boundary.country query'); + common.deepEqual(t, compiled.body, expected, 'search: valid multi boundary.country query'); t.end(); }); @@ -220,7 +220,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_with_source_filtering'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid search query with source filtering'); + common.deepEqual(t, compiled.body, expected, 'search: valid search query with source filtering'); t.end(); }); @@ -239,7 +239,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_with_category_filtering'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'valid search query with category filtering'); + common.deepEqual(t, compiled.body, expected, 'valid search query with category filtering'); t.end(); }); @@ -574,7 +574,7 @@ module.exports.tests.city_country = function(test, common) { var expected = require('../fixture/search_fallback_postalcode_only'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_fallback_postalcode_only'); + common.deepEqual(t, compiled.body, expected, 'search_fallback_postalcode_only'); t.end(); }); @@ -596,7 +596,7 @@ module.exports.tests.boundary_gid = function(test, common) { var expected = require('../fixture/search_boundary_gid'); t.deepEqual(compiled.type, 'search_fallback', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid boundary.gid filter'); + common.deepEqual(t, compiled.body, expected, 'search: valid boundary.gid filter'); t.end(); }); diff --git a/test/unit/query/search_pelias_parser.js b/test/unit/query/search_pelias_parser.js index 7c2eba0c9..19b774094 100644 --- a/test/unit/query/search_pelias_parser.js +++ b/test/unit/query/search_pelias_parser.js @@ -35,7 +35,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_linguistic_focus_bbox'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_focus_bbox'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_focus_bbox'); t.end(); }); @@ -53,7 +53,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_linguistic_bbox'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_bbox'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_bbox'); t.end(); }); @@ -67,7 +67,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_linguistic_only'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_only'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_only'); t.end(); }); @@ -82,7 +82,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_linguistic_focus'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_focus'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_focus'); t.end(); }); @@ -97,7 +97,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_linguistic_focus_null_island'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_linguistic_focus_null_island'); + common.deepEqual(t, compiled.body, expected, 'search_linguistic_focus_null_island'); t.end(); }); @@ -120,7 +120,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_full_address'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_full_address'); + common.deepEqual(t, compiled.body, expected, 'search_full_address'); t.end(); }); @@ -140,7 +140,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_partial_address'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_partial_address'); + common.deepEqual(t, compiled.body, expected, 'search_partial_address'); t.end(); }); @@ -162,7 +162,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_regions_address'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search_regions_address'); + common.deepEqual(t, compiled.body, expected, 'search_regions_address'); t.end(); }); @@ -177,7 +177,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_boundary_country'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid boundary.country query'); + common.deepEqual(t, compiled.body, expected, 'search: valid boundary.country query'); t.end(); }); @@ -191,7 +191,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_with_source_filtering'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid search query with source filtering'); + common.deepEqual(t, compiled.body, expected, 'search: valid search query with source filtering'); t.end(); }); @@ -205,7 +205,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_with_category_filtering'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'correct search_with_category_filtering query'); + common.deepEqual(t, compiled.body, expected, 'correct search_with_category_filtering query'); t.end(); }); @@ -220,7 +220,7 @@ module.exports.tests.query = function(test, common) { var expected = require('../fixture/search_pelias_parser_boundary_gid'); t.deepEqual(compiled.type, 'search_pelias_parser', 'query type set'); - t.deepEqual(compiled.body, expected, 'search: valid boundary.gid filter'); + common.deepEqual(t, compiled.body, expected, 'search: valid boundary.gid filter'); t.end(); }); }; diff --git a/test/unit/query/search_with_custom_boosts.js b/test/unit/query/search_with_custom_boosts.js index cd2efdf33..dcd0c54d5 100644 --- a/test/unit/query/search_with_custom_boosts.js +++ b/test/unit/query/search_with_custom_boosts.js @@ -29,14 +29,14 @@ module.exports.tests.query = function(test, common) { } }; - var expected_query = require('../fixture/search_with_custom_boosts.json'); + var expected_query = require('../fixture/search_with_custom_boosts'); const search_query_module = proxyquire('../../../query/search_pelias_parser', { 'pelias-config': config_with_boosts }); const actual_query = JSON.parse( JSON.stringify( search_query_module(clean) ) ); - t.deepEqual(actual_query, expected_query, 'search_with_custom_boosts query as expected'); + common.deepEqual(t, actual_query, expected_query, 'search_with_custom_boosts query as expected'); t.pass(); t.end(); }); diff --git a/test/unit/run.js b/test/unit/run.js index 3bd6db299..580faf000 100644 --- a/test/unit/run.js +++ b/test/unit/run.js @@ -5,6 +5,13 @@ var common = { // a visual deep diff rendered using console.error() diff: function( actual, expected ){ console.error( diff.compare( actual, expected ) ); + }, + // t.deepEqual wrapper that also prints a visual diff on failure + deepEqual: function( t, actual, expected, msg ){ + if( !require('util').isDeepStrictEqual( actual, expected ) ){ + console.error( diff.compare( actual, expected ) ); + } + t.deepEqual( actual, expected, msg ); } };