One behaviour per test, however many assertions it takes
"One assert per test" gets you twenty tests that share setup and all fail together. The rule that helps is one behaviour per test: arrange, act once, then assert everything that behaviour implies.
it("cancelling a shipped order refunds nothing and keeps the shipment", () => {
const result = cancel(shippedOrder);
expect(result.refund).toBe(0);
expect(result.shipment.status).toBe("in_transit");
});When it fails, the name tells you which behaviour broke and the assertions tell you how.
testing