In reality, there is a scale of testing that has infinite stages between unit testing and end to end testing. Sometimes you're a bit between unit testing and integration testing. Sometimes your test falls somewhere between an integration test and an end to end test. Real systems usually require all sorts of tests along this scale in order to understand their behavior reliably.
For example, sometimes you're testing only one part of the system but its internals depend on other parts of the system, so you're implicitly testing those too. This doesn't make your test an Integration Test, it just makes it a unit test that is also testing other internal components implicitly – slightly larger than a unit test, and slightly smaller than an integration test. In fact, this is the sort of testing that is often the most effective.