Home

Awesome

ltest Build Status

A test function that:

Extracted from the test code in level-ttl and made more generic.

Install

$ npm install ltest --save

Usage

var tape = require('tape')
var test = require('ltest')(tape)
test('put and stream', function (t, db, createReadStream) {
  db.put('foo', 'bar', function (err) {
    t.ok(!err, 'no put error')
    var count = 0
    createReadStream()
      .on('data', function (data) {
        t.equal(data.key, 'foo')
        t.equal(data.value, 'bar')
        ++count
      })
      .on('end', function () {
        t.equal(count, 1)
        t.end() // <-- will close the db and delete files
      })
  })
})
TAP version 13
# put and stream
ok 1 no error on open()
ok 2 valid db object
ok 3 no put error
ok 4 should be equal
ok 5 should be equal
ok 6 should be equal
ok 7 no error on close()
ok 8 db removed

1..8
# tests 8
# pass  8

# ok

Api

ltest([options, ]testFn)

Returns a test function of the form function (desc[, opts], cb) where desc is the test description, opts is an optional options object passed to underlying db and cb is a callback of the form function (t, db, createReadStream).

options object is optional and is passed on to levelup and to level-test. Use this to define things like 'keyEncoding' or other settings for levelup.

Set options.mem to true if you want an in memory db.

testFn is the test function that should be used. Use any framework you like as long as it's a function and supports t.end and t.ok methods.

var ltest = require('ltest')(require('tape'))

or

var ltest = require('ltest')(require('tap').test)

License

MIT