Hello all!
Basically, `start_supervised` in ExUnit is great in lots of ways. It integrates well with the ExUnit test lifecycle and provides nice guarantees. What it doesn't do is ensure that any failure in the process you're testing is properly propagated to the test process. This means you risk scenarios where your assertions are all fine, but behind the scenes the process actually crashed. This is assuming your final assertions in the test don't need the process to still be alive, or you're doing Mox stuff and verifying expectations.
I've found myself frequently, although not always, adding a `Process.link` of the pid of the supervised process to guarantee it's not silently crashing during tests, and I've caught broken tests this way. You get nice and pretty outputs and test failures.
This is a super simple proposal to add a `link` version of `start_supervised` that ensures the supervised process is also linked to the test process, with some nice docs highlighting the difference. I guess it's as much about the docs as anything else, since it's easy to link manually!