# Testing 1. Everything should type check based on the types in `specs` 2. Our code should match all the behaviours and requirements written down in the `SPEC.md` files in `spec` 3. Component code should ideally have a lot of unit tests in the form of documentation tests. This way, people or agents that consume these components can understand it; and we're confirming the behaviour. 4. A lot of components integrate or rely on external services, as much as possible should be tested using integration tests.