## 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