|
|
@ -14,11 +14,11 @@ import { ActivitiesService } from './activities.service'; |
|
|
|
|
|
|
|
|
describe('ActivitiesService', () => { |
|
|
describe('ActivitiesService', () => { |
|
|
let activitiesService: ActivitiesService; |
|
|
let activitiesService: ActivitiesService; |
|
|
let getSplitsByAssetProfiles: jest.Mock; |
|
|
let getSplitsBySymbolProfileIds: jest.Mock; |
|
|
let accountService: { getCashDetails: jest.Mock }; |
|
|
let accountService: { getCashDetails: jest.Mock }; |
|
|
|
|
|
|
|
|
beforeEach(() => { |
|
|
beforeEach(() => { |
|
|
getSplitsByAssetProfiles = jest.fn(); |
|
|
getSplitsBySymbolProfileIds = jest.fn(); |
|
|
accountService = { getCashDetails: jest.fn() }; |
|
|
accountService = { getCashDetails: jest.fn() }; |
|
|
|
|
|
|
|
|
activitiesService = new ActivitiesService( |
|
|
activitiesService = new ActivitiesService( |
|
|
@ -33,7 +33,7 @@ describe('ActivitiesService', () => { |
|
|
null, |
|
|
null, |
|
|
null, |
|
|
null, |
|
|
null, |
|
|
null, |
|
|
{ getSplitsByAssetProfiles } as unknown as AssetProfileSplitService |
|
|
{ getSplitsBySymbolProfileIds } as unknown as AssetProfileSplitService |
|
|
); |
|
|
); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
@ -133,10 +133,10 @@ describe('ActivitiesService', () => { |
|
|
activities: [activity], |
|
|
activities: [activity], |
|
|
count: 1 |
|
|
count: 1 |
|
|
}); |
|
|
}); |
|
|
getSplitsByAssetProfiles.mockResolvedValue( |
|
|
getSplitsBySymbolProfileIds.mockResolvedValue( |
|
|
new Map([ |
|
|
new Map([ |
|
|
['YAHOO-MSFT', [split]], |
|
|
['YAHOO-MSFT-profile', [split]], |
|
|
['MANUAL-AAPL', [split]] |
|
|
['MANUAL-AAPL-profile', [split]] |
|
|
]) |
|
|
]) |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
@ -175,8 +175,8 @@ describe('ActivitiesService', () => { |
|
|
activities: [activity], |
|
|
activities: [activity], |
|
|
count: 1 |
|
|
count: 1 |
|
|
}); |
|
|
}); |
|
|
getSplitsByAssetProfiles.mockResolvedValue( |
|
|
getSplitsBySymbolProfileIds.mockResolvedValue( |
|
|
new Map([['YAHOO-AAPL', [split]]]) |
|
|
new Map([['YAHOO-AAPL-profile', [split]]]) |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
const result = |
|
|
const result = |
|
|
@ -192,8 +192,8 @@ describe('ActivitiesService', () => { |
|
|
userId: 'user-id', |
|
|
userId: 'user-id', |
|
|
withExcludedAccountsAndActivities: false |
|
|
withExcludedAccountsAndActivities: false |
|
|
}); |
|
|
}); |
|
|
expect(getSplitsByAssetProfiles).toHaveBeenCalledWith([ |
|
|
expect(getSplitsBySymbolProfileIds).toHaveBeenCalledWith([ |
|
|
{ dataSource: DataSource.YAHOO, symbol: 'AAPL' } |
|
|
'YAHOO-AAPL-profile' |
|
|
]); |
|
|
]); |
|
|
expect(result.activities[0]).toMatchObject({ |
|
|
expect(result.activities[0]).toMatchObject({ |
|
|
quantity: 20, |
|
|
quantity: 20, |
|
|
@ -223,8 +223,8 @@ describe('ActivitiesService', () => { |
|
|
count: 1 |
|
|
count: 1 |
|
|
}); |
|
|
}); |
|
|
accountService.getCashDetails.mockResolvedValue({ accounts: [] }); |
|
|
accountService.getCashDetails.mockResolvedValue({ accounts: [] }); |
|
|
getSplitsByAssetProfiles.mockResolvedValue( |
|
|
getSplitsBySymbolProfileIds.mockResolvedValue( |
|
|
new Map([['YAHOO-AAPL', [split]]]) |
|
|
new Map([['YAHOO-AAPL-profile', [split]]]) |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
const result = |
|
|
const result = |
|
|
@ -234,8 +234,8 @@ describe('ActivitiesService', () => { |
|
|
withCash: true |
|
|
withCash: true |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
expect(getSplitsByAssetProfiles).toHaveBeenCalledWith([ |
|
|
expect(getSplitsBySymbolProfileIds).toHaveBeenCalledWith([ |
|
|
{ dataSource: DataSource.YAHOO, symbol: 'AAPL' } |
|
|
'YAHOO-AAPL-profile' |
|
|
]); |
|
|
]); |
|
|
expect(result.activities).toEqual([ |
|
|
expect(result.activities).toEqual([ |
|
|
expect.objectContaining({ |
|
|
expect.objectContaining({ |
|
|
@ -254,13 +254,8 @@ describe('ActivitiesService', () => { |
|
|
activities: [activity], |
|
|
activities: [activity], |
|
|
count: 1 |
|
|
count: 1 |
|
|
}); |
|
|
}); |
|
|
getSplitsByAssetProfiles.mockResolvedValue( |
|
|
getSplitsBySymbolProfileIds.mockResolvedValue( |
|
|
new Map([ |
|
|
new Map([[activity.assetProfile.id, splits]]) |
|
|
[ |
|
|
|
|
|
`${activity.assetProfile.dataSource}-${activity.assetProfile.symbol}`, |
|
|
|
|
|
splits |
|
|
|
|
|
] |
|
|
|
|
|
]) |
|
|
|
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
const result = |
|
|
const result = |
|
|
@ -298,6 +293,7 @@ function createActivity({ |
|
|
assetSubClass, |
|
|
assetSubClass, |
|
|
currency, |
|
|
currency, |
|
|
dataSource, |
|
|
dataSource, |
|
|
|
|
|
id: `${dataSource}-${symbol}-profile`, |
|
|
symbol |
|
|
symbol |
|
|
}, |
|
|
}, |
|
|
date: parseDate(date), |
|
|
date: parseDate(date), |
|
|
|