While this is generally a great practice to follow, after doing this for multiple projects I can see some downsides to always having to hit 100%.
- Having to fully mock certain things (Databases, AWS Services, etc...) just to hit the magic 100% number.
- Sometimes tests are added only to ensure the code is covered, instead of actually being a useful test.
- Having a 100% coverage policy takes a lot of time and effort to do, but doesn't actually ensure the app works end-to-end without also adding E2E tests.
From experience, I think a middle ground with high test coverage, but also including end-to-end testing seems like a better way to test applications (although this also has challenges).
I would be interested to hear about other options / opinions here, and if there are other means to ensure test coverage is high, but also functional.