UNPKG

2.46 kBJavaScriptView Raw
1// Dependencies
2var nock = require('nock'),
3 solr = require('./../main'),
4 vows = require('vows'),
5 assert = require('assert');
6 mocks = require('./mocks'),
7 fs = require('fs');
8
9// Load configuration file
10var config = JSON.parse(fs.readFileSync(__dirname + '/config.json'));
11
12if(config.mocked){
13 //nock.recorder.rec();
14 mocks.mlt(nock);
15}
16
17// Suite Test
18
19var suite = vows.describe('Solr Client API: More like this');
20
21suite.addBatch({
22 'Create a mlt' : {
23 'with the following options: `fl`, `mindf`, `mintf`, `minwl`, `maxwl`, `maxqt`, `maxntp`, `boost`, `count`' : {
24 topic : function(){
25 var client = solr.createClient();
26 var query = client.createQuery()
27 .q('laptop')
28 .mlt({
29 fl : ['title_t','description_t'],
30 mindf : 1,
31 mintf : 1,
32 minwl : 3,
33 maxwl : 5,
34 maxqt : 8,
35 maxntp : 9,
36 boost : true,
37 count : 10,
38 qf : { title_t : 2 , description_t : 3}
39 })
40 .fl('id,score');
41 client.search(query,this.callback);
42 },
43 'should return a correct response without error' :function(err,res) {
44 assertCorrectResponse(err,res)
45 }
46 }
47 }
48}).export(module);
49
50// Macro
51
52function assertCorrectResponse(err,data){
53 assert.isNull(err);
54 assert.isObject(data);
55 assert.equal(data.responseHeader.status,0);
56 assert.isObject(data.moreLikeThis);
57 assert.equal(data.responseHeader.params['mlt.fl'],'title_t,description_t');
58 assert.equal(data.responseHeader.params['mlt.mintf'],'1');
59 assert.equal(data.responseHeader.params['mlt.mindf'],'1');
60 assert.equal(data.responseHeader.params['mlt.minwl'],'3');
61 assert.equal(data.responseHeader.params['mlt.maxwl'],'5');
62 assert.equal(data.responseHeader.params['mlt.maxqt'],'8');
63 assert.equal(data.responseHeader.params['mlt.maxntp'],'9');
64 assert.equal(data.responseHeader.params['mlt.boost'],'true');
65 assert.equal(data.responseHeader.params['mlt.qf'],'title_t^2 description_t^3');
66 assert.equal(data.responseHeader.params['mlt'],'true');
67 assert.equal(data.responseHeader.params['mlt.count'],'10');
68}