UNPKG

npm-kludge-search

Version:
99 lines (77 loc) 2.5 kB
'use strict'; var populateDb = require('../lib/populateDb'), getDb = require('../lib/getDb'), makeDb = require('../lib/makeDb'), testDB = './test.pft'; var samplePackage = { name: 'package', description: 'blah blah foobar', maintainers: [ {name: 'blither' } ], versions: { '1.0.0': 'latest' }, time: { modified: '2014-04-01T14:21:13' }, keywords: 'test, sample', url: 'https://github.org/nobody/package/' }; var rimraf = require('rimraf'); 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('cleanup objects', function () { it('gracefully handles missing members', function (done) { var db = populateDb({prepare: function () {return; }}); db.cleanPackage({}); done(); }); }); describe('populate db', function () { lab.after(function (done) { rimraf(testDB, done); }); it('can add a record and freeze db', function (done) { getDb(testDB, function (err, db) { expect(err).to.equal(null); // wrap db db = populateDb(db); db.addPackage(samplePackage); db.get('package', function (err, row) { expect(err).to.equal(null); expect(row.name).to.equal('package'); db.freeze(testDB, function (err) { expect(!err).to.equal(true); done(); }); }); }); }); it('misses missing records', function (done) { makeDb(testDB, function (err, db) { expect(err).to.equal(null); // wrap db db = populateDb(db); db.get('missing', function (err) { expect(err).to.be.instanceof(Error); done(); }); }); }); it('can find by fts', function (done) { makeDb(testDB, function (err, db) { var rows = 0; expect(err).to.equal(null); db = populateDb(db); db.search('foobar', function (err, val) { expect(err).to.equal(null); expect(val.name).to.equal('package'); rows += 1; }, function (err) { expect(err).to.equal(); expect(rows).to.equal(1); done(); }); }); }); });