UNPKG

2.78 kBJavaScriptView Raw
1
2var extractor = require('../extractor/search');
3var fixtures = require('./fixtures/_index');
4
5module.exports.extractor = {};
6
7module.exports.extractor.invalidSearch = function(test, common) {
8 test('constructor: invalidCallback', function(t) {
9 var proxy = extractor();
10 t.equal(typeof proxy, 'function', 'function returned');
11 try { proxy(); }
12 catch (e){
13 t.equal(e.message, 'undefined is not a function', 'exception thrown');
14 t.end();
15 }
16 });
17}
18
19module.exports.extractor.respEmitsError = function(test, common) {
20 test('resp: emitsError', function(t) {
21 var proxy = extractor( function( err, resp ){
22 t.equal(typeof err, 'string', 'error emitted');
23 t.equal(err, 'an upstream error', err);
24 t.end();
25 });
26 t.equal(typeof proxy, 'function', 'function returned');
27 proxy( 'an upstream error' ); // upstream error
28 });
29}
30
31module.exports.extractor.respNoHits = function(test, common) {
32 test('resp: respNoHits', function(t) {
33 var proxy = extractor( function( err, resp ){
34 t.equal(err, undefined, 'no error emitted');
35 t.equal(resp, undefined, 'no result returned');
36 t.end();
37 });
38 t.equal(typeof proxy, 'function', 'function returned');
39 proxy(); // no hits
40 });
41}
42
43// Mapped all results
44module.exports.extractor.respGotHits = function(test, common) {
45 test('resp: respGotHits', function(t) {
46 var proxy = extractor( function( err, resp ){
47 t.equal(err, undefined, 'no error emitted');
48 t.equal(Array.isArray(resp), true, 'array returned');
49 t.equal(resp.length, 10, 'array contains 1 record');
50 t.equal(resp[0]._id, '551215562', 'field returned');
51 t.equal(resp[0]._index, 'pelias', 'field returned');
52 t.equal(resp[0]._type, 'osmnode', 'field returned');
53 t.equal(resp[0].type, 'node', 'field returned');
54 t.equal(resp[0].center_point.lat, 33.5169579, 'field returned');
55 t.equal(resp[0].center_point.lon, 36.2217176, 'field returned');
56 t.end();
57 });
58 t.equal(typeof proxy, 'function', 'function returned');
59 proxy( null, fixtures.search );
60 });
61}
62
63module.exports.extractor.genericFailure = function(test, common) {
64 test('resp: genericFailure', function(t) {
65 var proxy = extractor( function( err, resp ){
66 t.equal(err, fixtures.genericfail.error, 'error emitted');
67 t.equal(resp, undefined, 'no results returned');
68 t.end();
69 });
70 t.equal(typeof proxy, 'function', 'function returned');
71 proxy( null, fixtures.genericfail );
72 });
73}
74
75module.exports.all = function (tape, common) {
76
77 function test(name, testFunction) {
78 return tape('search extractor: ' + name, testFunction)
79 }
80
81 for( var testCase in module.exports.extractor ){
82 module.exports.extractor[testCase](test, common);
83 }
84}
\No newline at end of file