ava v3.8.2 Release Notes

Release Date: 2020-05-08 // 2 months ago

Previous changes from v3.8.1

  • 👍 Node.js 14 support

    🚀 Great news, this is a feature heavy release!

    👍 First off, though, AVA now officially supports Node.js 14. Thank you @zackschuster! 2e7c76b

    ✅ Run tests at specific line numbers

    🍱 AVA can now run tests at specific line numbers! 🎉

    ✅ Given the following test file:

    test.js

    1: test('unicorn', t =\> {2:t.pass();3: });4:5: test('rainbow', t =\> {6:t.fail();7: });
    

    ✅ Running npx ava test.js:2 for would run the unicorn test. In fact you could use any line number between 1 and 3.

    👀 This feature is only available from the command line. It won't work if you use tools like ts-node/register or @babel/register, and it does not currently work with @ava/babel and @ava/typescript. See #2473.

    Thank you @ulken for your hard work and patience to get this shipped. 1222ce9

    ✅ Test-specific teardown functions

    Sometimes tests have side-effects you want to clean up. @ulken has implemented t.teardown() which lets you register teardown functions within your test. They'll run once your test has finished, even if it failed: 75cbc3b

    test('read file', t => {
        fs.writeFileSync('file.txt', '👋');
        t.teardown(() => fs.unlinkSync('file.txt');
    
        // Run assertions
    });
    

    Node.js internal in stack traces

    🚚 Thanks to @bunysae, stack traces now include Node.js internals. Previously we removed them because we wanted you to focus on your own code, but quite often they do provide context. Now they're displayed, but somewhat dimmed. 9a9351d

    0️⃣ Watch mode with the default reporter

    0️⃣ Watch mode with the default reporter once again accepts key input. Thanks @pcdevil! 59c227d

    ICYMI

    afterEach() and afterEach.always() hooks can now determine whether the test passed. Thank you @bunysae for contributing this! 8f312c0

     test('passes', t =\> t.pass()); test.afterEach(t =\> { if (t.passed) { // Do something because the test passed } else { // Do something because the test failed } });
    

    ✅ If you've ever wanted to save some files along with AVA's snapshots, you can now determine the directory path by accessing test.meta.snapshotDirectory. Thank you @ulken! cb5f9f7

    All changes

    👀 See v3.7.1...v3.8.1 for all changes.