End-to-End tests are mandatory. But what's the right balance between Unit Tests, Integration Tests, and End-to-End tests? Here's an excellent article from the Google Testing team with a real world example.
"As a good first guess,Google often suggests a 70/20/10 split: 70% unit tests, 20% integration tests, and 10% end-to-end tests. The exact mix will be different for each team, but in general, it should retain that pyramid shape."