Unit Test component: Mock object - instead of defining a MockClass, use: jasmine.createSpyObject('name', ['array', 'method']
Container - Presentational Pattern: To minimize the logic in Presentational component, Presentational component only accept valid @Input. Container has responsibility to ensure the @Input set to Presentational component valid. Ex: Presentational component has @Input Dashboard: Dashboard[] - this should be null or undefined. The container must ensure the data input to Presentational component is correct; ie: not null and not undefined.
ngrx-store: Observable is preferred to Promise. Therefore, do not use async - await.