From 088a34c5d5179b257a9a4f579df32d1257225e23 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Fri, 16 Aug 2024 21:53:30 +0200 Subject: [PATCH] Improve tests --- ...o-calculator-baln-buy-and-sell-in-two-activities.spec.ts | 6 +----- .../twr/portfolio-calculator-baln-buy-and-sell.spec.ts | 6 +----- .../calculator/twr/portfolio-calculator-baln-buy.spec.ts | 6 +----- ...rtfolio-calculator-btcusd-buy-and-sell-partially.spec.ts | 6 +----- .../calculator/twr/portfolio-calculator-fee.spec.ts | 6 +----- .../calculator/twr/portfolio-calculator-googl-buy.spec.ts | 6 +----- .../calculator/twr/portfolio-calculator-item.spec.ts | 6 +----- .../calculator/twr/portfolio-calculator-liability.spec.ts | 6 +----- .../twr/portfolio-calculator-msft-buy-with-dividend.spec.ts | 6 +----- .../calculator/twr/portfolio-calculator-no-orders.spec.ts | 6 +----- ...portfolio-calculator-novn-buy-and-sell-partially.spec.ts | 6 +----- .../twr/portfolio-calculator-novn-buy-and-sell.spec.ts | 6 +----- 12 files changed, 12 insertions(+), 60 deletions(-) diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts index c087857b0..b63de0f28 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell-in-two-activities.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with BALN.SW buy and sell in two activities', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2021-12-18').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2021-12-18').getTime()); const activities: Activity[] = [ { @@ -140,8 +138,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('0'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts index 512b0869d..a677d9fc1 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy-and-sell.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with BALN.SW buy and sell', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2021-12-18').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2021-12-18').getTime()); const activities: Activity[] = [ { @@ -125,8 +123,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('0'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts index a4be7c3b9..5106c701c 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-baln-buy.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with BALN.SW buy', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2021-12-18').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2021-12-18').getTime()); const activities: Activity[] = [ { @@ -110,8 +108,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('297.8'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts index f32c5344d..f9a83335a 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-btcusd-buy-and-sell-partially.spec.ts @@ -80,9 +80,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with BTCUSD buy and sell partially', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2018-01-01').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2018-01-01').getTime()); const activities: Activity[] = [ { @@ -138,8 +136,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('13298.425356'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts index f87a3f108..4a19683c8 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-fee.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('compute portfolio snapshot', () => { it.only('with fee activity', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2021-12-18').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2021-12-18').getTime()); const activities: Activity[] = [ { @@ -99,8 +97,6 @@ describe('PortfolioCalculator', () => { const portfolioSnapshot = await portfolioCalculator.getSnapshot(); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('0'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts index b545034ab..9b78f8100 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-googl-buy.spec.ts @@ -80,9 +80,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with GOOGL buy', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2023-07-10').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime()); const activities: Activity[] = [ { @@ -123,8 +121,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('103.10483'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts index eb1045bec..50b5e8028 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-item.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('compute portfolio snapshot', () => { it.only('with item activity', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2022-01-31').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2022-01-31').getTime()); const activities: Activity[] = [ { @@ -99,8 +97,6 @@ describe('PortfolioCalculator', () => { const portfolioSnapshot = await portfolioCalculator.getSnapshot(); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('0'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts index d468e8e00..f888ee95d 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-liability.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('compute portfolio snapshot', () => { it.only('with liability activity', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2022-01-31').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2022-01-31').getTime()); const activities: Activity[] = [ { @@ -97,8 +95,6 @@ describe('PortfolioCalculator', () => { userId: userDummyData.id }); - spy.mockRestore(); - const liabilitiesInBaseCurrency = await portfolioCalculator.getLiabilitiesInBaseCurrency(); diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts index eabea87a3..eea457397 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-msft-buy-with-dividend.spec.ts @@ -80,9 +80,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with MSFT buy', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2023-07-10').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2023-07-10').getTime()); const activities: Activity[] = [ { @@ -127,8 +125,6 @@ describe('PortfolioCalculator', () => { const portfolioSnapshot = await portfolioCalculator.getSnapshot(); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ errors: [], hasErrors: false, diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts index d9a347c7d..efd69e4dd 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-no-orders.spec.ts @@ -63,9 +63,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it('with no orders', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2021-12-18').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2021-12-18').getTime()); const portfolioCalculator = factory.createCalculator({ activities: [], @@ -88,8 +86,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big(0), grossPerformance: new Big(0), diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts index 9fa3644a1..ec06196aa 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell-partially.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with NOVN.SW buy and sell partially', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2022-04-11').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2022-04-11').getTime()); const activities: Activity[] = [ { @@ -125,8 +123,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(portfolioSnapshot).toMatchObject({ currentValueInBaseCurrency: new Big('87.8'), errors: [], diff --git a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts index e4373c0ec..a08477ba9 100644 --- a/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts +++ b/apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-novn-buy-and-sell.spec.ts @@ -67,9 +67,7 @@ describe('PortfolioCalculator', () => { describe('get current positions', () => { it.only('with NOVN.SW buy and sell', async () => { - const spy = jest - .spyOn(Date, 'now') - .mockImplementation(() => parseDate('2022-04-11').getTime()); + jest.useFakeTimers().setSystemTime(parseDate('2022-04-11').getTime()); const activities: Activity[] = [ { @@ -125,8 +123,6 @@ describe('PortfolioCalculator', () => { groupBy: 'month' }); - spy.mockRestore(); - expect(chartData[0]).toEqual({ date: '2022-03-07', investmentValueWithCurrencyEffect: 151.6,