Greenkeeper warned about 4.10.0 breaking tests and when reverting back to previous 4.9.x they started working again. For instance https://travis-ci.org/Level/codec/jobs/491075876
Seems to be related to streams somehow.
cc @vweevers
4.10 includes some bug fixes (#403, #404) that might cause this.
Specifically, though, the tests have some issues -
https://github.com/Level/codec/blob/ab18d82d2d36446c21f0a8a3e4702d32b15e57e9/test/decoder.js#L4 does not include a plan or an end (directly on the t), and neither does
https://github.com/Level/codec/blob/ab18d82d2d36446c21f0a8a3e4702d32b15e57e9/test/decoder.js#L38. If you add the outer t.end() calls, what happens to the tests in tape 4.9?
If tape < 4.10 did not need an explicit t.end() after one or more t.test() - which is reasonable - then this is a breaking change.
That said, adding t.end() does fix the tests (works in both 4.9 and 4.10), at least for level-codec and abstract-leveldown.
After looking at #403 and its tests, I understand why t.end() or t.plan() is needed. It's to support the use case of assertions mixed with subtests:
test('example', function (t) {
t.plan(2)
t.ok(true)
t.test(function (t) {
// ..
})
})
@ralphtheninja I'll make some PRs for our tests.
Good to close. Thanks @ljharb!
Thanks! Unfortunately bug fixes can still be arguably breaking changes; in this case, i think it鈥檚 a bug fix, and I鈥檓 glad you were able to adjust to it easily :-)