Tape: Breaking change in 4.10.0?

Created on 10 Feb 2019  路  6Comments  路  Source: substack/tape

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

All 6 comments

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 :-)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

shaunmcarmody picture shaunmcarmody  路  7Comments

AndyOGo picture AndyOGo  路  8Comments

dcousens picture dcousens  路  3Comments

aral picture aral  路  8Comments

JoshuaGrams picture JoshuaGrams  路  5Comments