UNPKG

5.63 kBJavaScriptView Raw
1
2var Backend = require('../');
3
4module.exports.backend = {};
5
6function mockClient( cb ){
7 return {
8 get: cb.bind(this, 'get'),
9 mget: cb.bind(this, 'mget'),
10 index: cb.bind(this, 'index'),
11 search: cb.bind(this, 'search'),
12 bulk: cb.bind(this, 'bulk')
13 }
14}
15
16module.exports.backend.get = function(test, common) {
17 test('get()', function(t) {
18
19 var client = mockClient( function( method, query, cb ){
20 t.equal(method, 'get', 'get called');
21 t.equal(typeof query, 'object', 'query generated');
22 t.equal(typeof cb, 'function', 'callback provided');
23 t.equal(query.index, 'foo', 'query valid');
24 t.equal(query.type, 'bar', 'query valid');
25 t.equal(query.id, 1, 'query valid');
26 t.end();
27 });
28
29 var backend = new Backend( client, 'foo', 'bar' );
30 backend.get( 1, null, function(){} );
31 });
32}
33
34module.exports.backend.mget = function(test, common) {
35 test('mget()', function(t) {
36
37 var client = mockClient( function( method, query, cb ){
38 t.equal(method, 'mget', 'mget called');
39 t.equal(typeof query, 'object', 'query generated');
40 t.equal(typeof cb, 'function', 'callback provided');
41 t.equal(query.index, 'foo', 'query valid');
42 t.equal(query.type, 'bar', 'query valid');
43 t.equal(query.body.ids[0], 1, 'query valid');
44 t.end();
45 });
46
47 var backend = new Backend( client, 'foo', 'bar' );
48 backend.mget( [1], null, function(){} );
49 });
50}
51
52module.exports.backend.put = function(test, common) {
53 test('put()', function(t) {
54
55 var client = mockClient( function( method, query, cb ){
56 t.equal(method, 'index', 'index called');
57 t.equal(typeof query, 'object', 'query generated');
58 t.equal(typeof cb, 'function', 'callback provided');
59 t.equal(query.index, 'foo', 'query valid');
60 t.equal(query.type, 'bar', 'query valid');
61 t.equal(query.body, 'hello', 'query valid');
62 t.end();
63 });
64
65 var backend = new Backend( client, 'foo', 'bar' );
66 backend.put( 1, 'hello', null, function(){} );
67 });
68}
69
70module.exports.backend.search = function(test, common) {
71 test('search()', function(t) {
72
73 var client = mockClient( function( method, query, cb ){
74 t.equal(method, 'search', 'search called');
75 t.equal(typeof query, 'object', 'query generated');
76 t.equal(typeof cb, 'function', 'callback provided');
77 t.equal(query.index, 'foo', 'query valid');
78 t.equal(query.type, 'bar', 'query valid');
79 t.equal(query.body.query, 'hello', 'query valid');
80 t.end();
81 });
82
83 var backend = new Backend( client, 'foo', 'bar' );
84 backend.search( { query: 'hello' }, null, function(){} );
85 });
86}
87
88module.exports.backend.createPullStream = function(test, common) {
89 test('createPullStream()', function(t) {
90 var backend = new Backend( function(){}, 'foo', 'bar' );
91 var stream = backend.createPullStream();
92 t.equal(typeof stream, 'object', 'stream valid');
93 t.equal(typeof stream._readableState, 'object', 'stream valid');
94 t.end();
95 });
96}
97
98module.exports.backend.reverseGeo = function(test, common) {
99 test('reverseGeo()', function(t) {
100
101 var client = mockClient( function( method, query, cb ){
102 t.equal(method, 'search', 'search called');
103 t.equal(typeof query, 'object', 'query generated');
104 t.equal(typeof cb, 'function', 'callback provided');
105 t.equal(query.index, 'foo', 'query valid');
106 t.equal(query.type, 'bar', 'query valid');
107 t.equal(query.body.size, 1, 'query valid');
108 t.end();
109 });
110
111 var backend = new Backend( client, 'foo', 'bar' );
112 backend.reverseGeo( { lat: 1, lon: 1 }, null, function(){} );
113 });
114 test('reverseGeo() - override opts', function(t) {
115
116 var client = mockClient( function( method, query, cb ){
117 t.equal(method, 'search', 'search called');
118 t.equal(typeof query, 'object', 'query generated');
119 t.equal(typeof cb, 'function', 'callback provided');
120 t.equal(query.body.size, 2, 'query valid');
121 t.end();
122 });
123
124 var backend = new Backend( client, 'foo', 'bar' );
125 backend.reverseGeo( { lat: 1, lon: 1 }, { size: 2 }, function(){} );
126 });
127}
128
129
130module.exports.backend.findAdminHeirachy = function(test, common) {
131 test('findAdminHeirachy()', function(t) {
132
133 var client = mockClient( function( method, query, cb ){
134 t.equal(method, 'search', 'search called');
135 t.equal(typeof query, 'object', 'query generated');
136 t.equal(typeof cb, 'function', 'callback provided');
137 t.equal(query.index, 'foo', 'query valid');
138 t.equal(query.type, 'bar', 'query valid');
139 t.equal(query.body.size, 1, 'query valid');
140 t.end();
141 });
142
143 var backend = new Backend( client, 'foo', 'bar' );
144 backend.findAdminHeirachy( { lat: 1, lon: 1 }, null, function(){} );
145 });
146 test('findAdminHeirachy() - override opts', function(t) {
147
148 var client = mockClient( function( method, query, cb ){
149 t.equal(method, 'search', 'search called');
150 t.equal(typeof query, 'object', 'query generated');
151 t.equal(typeof cb, 'function', 'callback provided');
152 t.equal(query.body.size, 2, 'query valid');
153 t.end();
154 });
155
156 var backend = new Backend( client, 'foo', 'bar' );
157 backend.findAdminHeirachy( { lat: 1, lon: 1 }, { size: 2 }, function(){} );
158 });
159}
160
161module.exports.all = function (tape, common) {
162
163 function test(name, testFunction) {
164 return tape('backend: ' + name, testFunction)
165 }
166
167 for( var testCase in module.exports.backend ){
168 module.exports.backend[testCase](test, common);
169 }
170}
\No newline at end of file