By default in the test env, Phoenix doesn't show
IO.puts/IO.inspect outputs in the console.
Sometimes you need to do some database operations at once. A simple example: User-A transfers money to User-B. Updating just one balance at the time creates a risk of data desynchronization. What if the first DB operation goes well but updating the second user’s data fails? Sounds like a hard to catch vulnerability.
Ensuring that GraphQL mutations properly update your Apollo client's cache can be a bit tricky - here's how to manually control that.