Browse Source
Task/extend portfolio calculator tests with investments by year (#6240)
* Extend tests with investmentsByYear
pull/6241/head
Thomas Kaul
2 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with
102 additions and
0 deletions
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-buy.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy-and-sell.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-baln-buy.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btceur.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-btcusd.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-googl-buy.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-no-orders.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell-partially.spec.ts
-
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator-novn-buy-and-sell.spec.ts
|
|
|
@ -133,6 +133,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('595.6'), |
|
|
|
errors: [], |
|
|
|
@ -204,6 +209,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2021-11-01', investment: 559 }, |
|
|
|
{ date: '2021-12-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2021-01-01', investment: 559 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -149,6 +149,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('0'), |
|
|
|
errors: [], |
|
|
|
@ -218,6 +223,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2021-11-01', investment: 0 }, |
|
|
|
{ date: '2021-12-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2021-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -133,6 +133,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('0'), |
|
|
|
errors: [], |
|
|
|
@ -202,6 +207,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2021-11-01', investment: 0 }, |
|
|
|
{ date: '2021-12-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2021-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -123,6 +123,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('297.8'), |
|
|
|
errors: [], |
|
|
|
@ -201,6 +206,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2021-11-01', investment: 273.2 }, |
|
|
|
{ date: '2021-12-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2021-01-01', investment: 273.2 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
|
|
|
|
it.only('with BALN.SW buy (with unit price lower than closing price)', async () => { |
|
|
|
|
|
|
|
@ -132,6 +132,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot.historicalData[0]).toEqual({ |
|
|
|
date: '2021-12-11', |
|
|
|
investmentValueWithCurrencyEffect: 0, |
|
|
|
@ -247,6 +252,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2021-12-01', investment: 44558.42 }, |
|
|
|
{ date: '2022-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2021-01-01', investment: 44558.42 }, |
|
|
|
{ date: '2022-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -146,6 +146,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('13298.425356'), |
|
|
|
errors: [], |
|
|
|
@ -255,6 +260,13 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2017-12-01', investment: -318.54266729999995 }, |
|
|
|
{ date: '2018-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2015-01-01', investment: 637.0853345999999 }, |
|
|
|
{ date: '2016-01-01', investment: 0 }, |
|
|
|
{ date: '2017-01-01', investment: -318.54266729999995 }, |
|
|
|
{ date: '2018-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -132,6 +132,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot.historicalData[0]).toEqual({ |
|
|
|
date: '2021-12-11', |
|
|
|
investmentValueWithCurrencyEffect: 0, |
|
|
|
@ -247,6 +252,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2021-12-01', investment: 44558.42 }, |
|
|
|
{ date: '2022-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2021-01-01', investment: 44558.42 }, |
|
|
|
{ date: '2022-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -129,6 +129,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('103.10483'), |
|
|
|
errors: [], |
|
|
|
@ -220,6 +225,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
investment: 0 |
|
|
|
} |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2023-01-01', investment: 82.329056 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -93,6 +93,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big(0), |
|
|
|
hasErrors: false, |
|
|
|
@ -108,6 +113,8 @@ describe('PortfolioCalculator', () => { |
|
|
|
expect(investments).toEqual([]); |
|
|
|
|
|
|
|
expect(investmentsByMonth).toEqual([]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -129,6 +129,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot).toMatchObject({ |
|
|
|
currentValueInBaseCurrency: new Big('87.8'), |
|
|
|
errors: [], |
|
|
|
@ -200,6 +205,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2022-03-01', investment: 151.6 }, |
|
|
|
{ date: '2022-04-01', investment: -75.8 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2022-01-01', investment: 75.8 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -129,6 +129,11 @@ describe('PortfolioCalculator', () => { |
|
|
|
groupBy: 'month' |
|
|
|
}); |
|
|
|
|
|
|
|
const investmentsByYear = portfolioCalculator.getInvestmentsByGroup({ |
|
|
|
data: portfolioSnapshot.historicalData, |
|
|
|
groupBy: 'year' |
|
|
|
}); |
|
|
|
|
|
|
|
expect(portfolioSnapshot.historicalData[0]).toEqual({ |
|
|
|
date: '2022-03-06', |
|
|
|
investmentValueWithCurrencyEffect: 0, |
|
|
|
@ -251,6 +256,10 @@ describe('PortfolioCalculator', () => { |
|
|
|
{ date: '2022-03-01', investment: 151.6 }, |
|
|
|
{ date: '2022-04-01', investment: -151.6 } |
|
|
|
]); |
|
|
|
|
|
|
|
expect(investmentsByYear).toEqual([ |
|
|
|
{ date: '2022-01-01', investment: 0 } |
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|