diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts index d33f104522..fd39b0652d 100644 --- a/libs/common/src/lib/helper.spec.ts +++ b/libs/common/src/lib/helper.spec.ts @@ -1,6 +1,11 @@ +import { + TAG_ID_EMERGENCY_FUND, + TAG_ID_EXCLUDE_FROM_ANALYSIS +} from '@ghostfolio/common/config'; import { extractNumberFromString, getNumberFormatGroup, + isAccountExcluded, isCurrency, isCurrencySymbol } from '@ghostfolio/common/helper'; @@ -139,6 +144,28 @@ describe('Helper', () => { }); }); + describe('Is account excluded', () => { + it('Account with Exclude from Analysis tag', () => { + expect( + isAccountExcluded({ tags: [{ id: TAG_ID_EXCLUDE_FROM_ANALYSIS }] }) + ).toEqual(true); + }); + + it('Account with another tag', () => { + expect( + isAccountExcluded({ tags: [{ id: TAG_ID_EMERGENCY_FUND }] }) + ).toEqual(false); + }); + + it('Account without tags', () => { + expect(isAccountExcluded({ tags: [] })).toEqual(false); + }); + + it('Undefined account', () => { + expect(isAccountExcluded(undefined)).toEqual(false); + }); + }); + describe('Is currency', () => { it('ISO 4217 currency code', () => { expect(isCurrency('USD')).toEqual(true); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index db1d3c2a20..00a4e8db7e 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -456,9 +456,9 @@ export function interpolate(template: string, context: any) { }); } -export function isAccountExcluded(account: { tags?: { id: string }[] }) { +export function isAccountExcluded(account?: { tags?: { id: string }[] }) { return ( - account.tags?.some(({ id }) => { + account?.tags?.some(({ id }) => { return id === TAG_ID_EXCLUDE_FROM_ANALYSIS; }) === true ); diff --git a/libs/ui/eslint.config.cjs b/libs/ui/eslint.config.cjs index 59b0abad85..65d17debdc 100644 --- a/libs/ui/eslint.config.cjs +++ b/libs/ui/eslint.config.cjs @@ -42,15 +42,7 @@ module.exports = [ ], '@angular-eslint/prefer-inject': 'off', '@angular-eslint/prefer-standalone': 'off', - '@typescript-eslint/prefer-nullish-coalescing': [ - 'error', - { - ignorePrimitives: { - boolean: true, - string: true - } - } - ] + '@typescript-eslint/prefer-nullish-coalescing': 'error' }, languageOptions: { parserOptions: { diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts index 3318ca4309..7252b00740 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.ts +++ b/libs/ui/src/lib/activities-table/activities-table.component.ts @@ -298,7 +298,7 @@ export class GfActivitiesTableComponent implements AfterViewInit, OnInit { public isExcludedFromAnalysis(activity: Activity) { return ( - (activity.account && isAccountExcluded(activity.account)) || + isAccountExcluded(activity.account) || activity.tags?.some(({ id }) => { return id === TAG_ID_EXCLUDE_FROM_ANALYSIS; }) === true