npm-kludge-search
Version:
Kludgy fast npm searcher
78 lines (62 loc) • 1.82 kB
JavaScript
;
var search = require('../lib/search');
var name = require('../lib/name');
var makeNullReporter = require('../lib/reporters/null');
var Code = require('code');
var Lab = require('lab');
var lab = Lab.script();
exports.lab = lab;
var describe = lab.describe;
var it = lab.it;
var expect = Code.expect;
describe('search', function () {
it('searches single word fts', function (done) {
var db = {
search: function (name, cb, done) {
cb(null, { name: name });
setImmediate(done);
}
},
opts = {
argv: {
remain: ['bar']
},
reporter: makeNullReporter()
};
search(db, opts, function () {
expect(opts.reporter.res).to.deep.equal([{ name: 'bar' }]);
done();
});
});
it('searches by name', function (done) {
var db = {
get: function (name, cb) {
cb(null, { name: name });
}
},
opts = {
name: 'bar',
reporter: makeNullReporter()
};
name(db, opts, function () {
expect(opts.reporter.res).to.deep.equal([{ name: 'bar' }]);
done();
});
});
it('handles missing search by name', function (done) {
var db = {
get: function (name, cb) {
/*jslint unparam: true*/
cb(new Error('No object with name "fair"'));
}
},
opts = {
name: 'bar',
reporter: makeNullReporter()
};
name(db, opts, function () {
expect(opts.reporter.res).to.deep.equal([]);
done();
});
});
});