From 7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 28 May 2017 00:38:50 +0200 Subject: add linting (and some initial fixes) --- .../@ava/babel-plugin-throws-helper/readme.md | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 node_modules/@ava/babel-plugin-throws-helper/readme.md (limited to 'node_modules/@ava/babel-plugin-throws-helper/readme.md') diff --git a/node_modules/@ava/babel-plugin-throws-helper/readme.md b/node_modules/@ava/babel-plugin-throws-helper/readme.md new file mode 100644 index 000000000..faa91d49d --- /dev/null +++ b/node_modules/@ava/babel-plugin-throws-helper/readme.md @@ -0,0 +1,33 @@ +# babel-plugin-throws-helper [![Build Status](https://travis-ci.org/avajs/babel-plugin-throws-helper.svg?branch=master)](https://travis-ci.org/avajs/babel-plugin-throws-helper) + +> Babel plugin for protecting against improper use of `t.throws()` in [AVA](https://ava.li) + +Probably not useful except as an internal plugin for the AVA test runner. + +[Genesis of the idea.](https://github.com/sindresorhus/eslint-plugin-ava/issues/75) + +## Issue + +> I've seen a lot of incorrect use of the throws assertion in other test runner and even done the mistake myself sometimes. Now I'm beginning to see it with AVA too, so would be nice to be preemptive about it. +> +> People don't realize they need to wrap their call in a function, so many end up doing `t.throws(foo())` instead of `t.throws(() => foo());`. It's an easy mistake to make. + +The difficulty is that `t.throws(foo())` is allowed if `foo()` returns a promise or a function. There is no good way to differentiate between the two at runtime. So providing a good error message is going to take some AST transform magic. + + +## Solution + +See [`example-output.md`](example-output.md) for the transformation this plugin performs. + +The example output can be generated by calling: + +``` +$ WRITE_EXAMPLES=1 ava +``` + +Contributors should not commit new examples. They will be regenerated as part of the release process. + + +## License + +MIT © [James Talmage](https://github.com/jamestalmage) -- cgit v1.2.3