You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.7 KiB
53 lines
1.7 KiB
/* Copyright (c) 2012-2016 LevelUP contributors |
|
* See list at <https://github.com/level/levelup#contributing> |
|
* MIT License <https://github.com/level/levelup/blob/master/LICENSE.md> |
|
*/ |
|
|
|
var assert = require('referee').assert |
|
var refute = require('referee').refute |
|
var buster = require('bustermove') |
|
var browserify = require('browserify') |
|
var path = require('path') |
|
var after = require('after') |
|
var bl = require('bl') |
|
var spawn = require('child_process').spawn |
|
var PACKAGE_JSON = path.join(__dirname, '..', 'package.json') |
|
|
|
buster.testCase('Browserify Bundle', { |
|
'does not contain package.json': function (done) { |
|
var b = browserify(path.join(__dirname, '..'), { browserField: true }) |
|
.once('error', function (error) { |
|
assert.fail(error) |
|
done() |
|
}) |
|
b.pipeline |
|
.on('file', function (file, id, parent) { |
|
refute.equals(file, PACKAGE_JSON) |
|
}) |
|
b.bundle(done) |
|
}, |
|
'throws error if missing db factory': function (done) { |
|
var b = browserify(path.join(__dirname, 'data/browser-throws.js'), { browserField: true }) |
|
var node = spawn('node') |
|
var fin = after(2, done) |
|
node.stderr.pipe(bl(function (err, buf) { |
|
refute(err) |
|
assert.match(buf.toString(), /LevelUPError: missing db factory, you need to set options\.db/) |
|
fin() |
|
})) |
|
node.on('exit', function (code) { |
|
assert.equals(code, 1) |
|
fin() |
|
}) |
|
b.bundle().pipe(node.stdin) |
|
}, |
|
'works with valid db factory (memdown)': function (done) { |
|
var b = browserify(path.join(__dirname, 'data/browser-works.js'), { browserField: true }) |
|
var node = spawn('node') |
|
node.on('exit', function (code) { |
|
assert.equals(code, 0) |
|
done() |
|
}) |
|
b.bundle().pipe(node.stdin) |
|
} |
|
})
|
|
|