Any good rules of thumb for designing E2E tests that validate the components can all talk to each other without duplicating business logic tests (that are better handled in unit tests where all the inputs can be controlled)?