Testing with JavaScript AAA pattern (Arrange, Act, Assert) Unit tests Integration tests E2E tests Testing Asynchronous code Mocks Spies