Snapshot tests are usually a way of asserting that nothing changed, which is worth very little, until the change is one nobody intended.
public function testOrderConfirmationBody(): void
{
$mail = new OrderConfirmation($this->order());
$this->assertMatchesHtmlSnapshot($mail->render());
}
// the diff that mattered:
// - Total: £49.00
// + Total: £4900.00
// a formatter change in a shared component, three
// templates away.
The snapshot caught a currency formatting change that no unit test covered because the formatter’s own tests were fine — the caller was passing pence to something that now expected pounds. Snapshots earn their place on rendered output nobody reads carefully; they earn contempt when used on data structures, where a real assertion is both shorter and clearer.