My approach to tests is that where you control all dependencies, do tests for core functionality and any tricky parts. After all, you can always hot-fix any breakage since everything is under your control. However, where you have external dependencies (eg: an API that third parties use) you should have fairly robust tests to ensure you are not introducing any regressions.