canAnimateProgress function
progressCanAnimate's decision, with its two inputs handed in.
Split out because neither input can be arranged from inside a test: a test
process's stdout.hasTerminal is whatever the runner handed it, and the
environment is read once at startup. The subprocess probe in
ticked_progress_test.dart proves the bytes; this proves the branch.
Implementation
bool canAnimateProgress({
required bool hasTerminal,
required bool forcedAnsi,
}) => hasTerminal || forcedAnsi;