---
# System prepended metadata

title: Untitled

---

## OTP Code Review

### Testing

- Prefer real services over test double
  - Prevents deviation from real implementation (say if interface changes)
  - If methods need to be stubbed of spied on, use `jest.spyOn` which has the benefit of typechecking if the method does not exist, etc.
- Component tests should use DOM rather than class properties/methods
- Remove usages of `compnent as any`

### Group by feature

- Components, util, and other libs should be in feature folders or in `pub/shared`

### NgRx

- Remove facades
  - Unnecessary and adds extra LOC and tests to maintain
- Inline action type enums in `createAction` call
  - Use the `.type` property on action creator if needed


### RxJS Operators

- Remove deprecated `forkJoin` usages

### Routing

- Never return `false` or `of(false)` from guards, we need to return a URL to redirect to or else SSR may be broken.

### Analytics

- Usages of deprecated `@ClickTracker()` decorator 
  - This is new so the team wouldn't have known not to use it :)

### Misc

- `setTimeout` usages need comments to explain why they are there
- Usage of `public` keyword goes against Angular style guide
