Browse Source

Optimize stock split activity adjustments

pull/7568/head
David Requeno 3 weeks ago
parent
commit
d30a926361
  1. 2
      apps/api/src/app/activities/activities.service.spec.ts
  2. 6
      apps/api/src/app/activities/activities.service.ts
  3. 4
      apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts
  4. 2
      apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts

2
apps/api/src/app/activities/activities.service.spec.ts

@ -44,7 +44,7 @@ describe('ActivitiesService', () => {
const result = await getAdjustedActivity(activity, []);
expect(result).toEqual(activity);
expect(result).not.toBe(activity);
expect(result).toBe(activity);
});
it.each([

6
apps/api/src/app/activities/activities.service.ts

@ -948,6 +948,11 @@ export class ActivitiesService {
assetProfiles
);
const hasSplits = [...splitsByAssetProfile.values()].some((splits) => {
return splits.length > 0;
});
if (hasSplits) {
activities.activities = activities.activities.map((activity) => {
const key = getAssetProfileIdentifier({
dataSource: activity.assetProfile.dataSource,
@ -959,6 +964,7 @@ export class ActivitiesService {
splitsByAssetProfile.get(key) ?? []
);
});
}
if (withCash && !this.areCashActivitiesExcludedByFilters(filters)) {
const cashDetails = await this.accountService.getCashDetails({

4
apps/api/src/services/asset-profile-split/asset-profile-split.helper.spec.ts

@ -54,9 +54,9 @@ describe('adjustActivityBySplits', () => {
);
expect(adjustedActivityOnSplitDate).toEqual(activityOnSplitDate);
expect(adjustedActivityOnSplitDate).not.toBe(activityOnSplitDate);
expect(adjustedActivityOnSplitDate).toBe(activityOnSplitDate);
expect(adjustedActivityAfterSplit).toEqual(activityAfterSplit);
expect(adjustedActivityAfterSplit).not.toBe(activityAfterSplit);
expect(adjustedActivityAfterSplit).toBe(activityAfterSplit);
});
it('compares stored UTC split dates without normalizing them locally', () => {

2
apps/api/src/services/asset-profile-split/asset-profile-split.helper.ts

@ -19,7 +19,7 @@ export function adjustActivityBySplits(
}
if (splitFactor.eq(1)) {
return { ...activity };
return activity;
}
return {

Loading…
Cancel
Save