Unit test verifies one piece of code in isolation.
Code that is unit-testable is code has little dependencies on other modules, and does no I/O (no files, databases, also no Ajax calls, local-storage, DOM access and manipulation. Anything that touches a browser API is I/O).
end-2-end test
End-to-end testsinteract with your site like a user: loading pages, filling out forms, clicking buttons.
They are executed against a system that has all required components to be deployed and running
Test runs agains live database.
They are generally slower to write and run, but closely match the real user experience.
Integration Test
Integration test validates how multiple units of your application work together but are more lightweight than E2E tests.
They may have utilities to facilitate integration testing. For example, emulation of common browser APIs or robust mocking tools can stub out external API calls