1 |
|
2 | var extractor = require('../extractor/search');
|
3 | var fixtures = require('./fixtures/_index');
|
4 |
|
5 | module.exports.extractor = {};
|
6 |
|
7 | module.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 |
|
19 | module.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' );
|
28 | });
|
29 | }
|
30 |
|
31 | module.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();
|
40 | });
|
41 | }
|
42 |
|
43 |
|
44 | module.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 |
|
63 | module.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 |
|
75 | module.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 |