Browse Source

Commented changes made

pull/3908/head
Dhaneshwari Tendle 11 months ago
parent
commit
a58e35990c
  1. 46
      apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-dynamic-buy-and-sell.spec.ts

46
apps/api/src/app/portfolio/calculator/twr/portfolio-calculator-dynamic-buy-and-sell.spec.ts

@ -1,9 +1,5 @@
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { import { userDummyData } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
activityDummyData,
symbolProfileDummyData,
userDummyData
} from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator-test-utils';
import { import {
PerformanceCalculationType, PerformanceCalculationType,
PortfolioCalculatorFactory PortfolioCalculatorFactory
@ -19,10 +15,9 @@ import { PortfolioSnapshotServiceMock } from '@ghostfolio/api/services/queues/po
import { parseDate } from '@ghostfolio/common/helper'; import { parseDate } from '@ghostfolio/common/helper';
import { Big } from 'big.js'; import { Big } from 'big.js';
import * as fs from 'fs'; import { existsSync, readFileSync } from 'fs';
import { last } from 'lodash'; import { last } from 'lodash';
import { join } from 'path';
import path = require('path');
jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => { jest.mock('@ghostfolio/api/app/portfolio/current-rate.service', () => {
return { return {
@ -88,32 +83,39 @@ describe('PortfolioCalculator', () => {
}); });
//read from activities json //read from activities json
let parsedData; let activities: any[];
beforeAll(() => { beforeAll(() => {
const jsonFilePath = path.join(__dirname, '../../../../../../../test/import/ok-novn-buy-and-sell.json'); const jsonFilePath = join(
if (!fs.existsSync(jsonFilePath)) throw new Error('JSON file not found at: ' + jsonFilePath); __dirname,
const jsonData = fs.readFileSync(jsonFilePath, 'utf8'); '../../../../../../../test/import/ok-novn-buy-and-sell.json'
parsedData = JSON.parse(jsonData); );
if (!existsSync(jsonFilePath))
throw new Error('JSON file not found at: ' + jsonFilePath);
const jsonData = readFileSync(jsonFilePath, 'utf8');
activities = JSON.parse(jsonData).activities;
}); });
describe('get current positions', () => { describe('get current positions', () => {
it.only('with NOVN.SW buy and sell', async () => { it.only('with NOVN.SW buy and sell', async () => {
jest.useFakeTimers().setSystemTime(parseDate('2022-04-11').getTime()); jest.useFakeTimers().setSystemTime(parseDate('2022-04-11').getTime());
//passing file json //map activity with json
const activities: Activity[] = parsedData.activities.map((activity) => ({ const mappedactivities: Activity[] = activities.map((activity) => ({
...activity, ...activity,
date: new Date(activity.date), date: new Date(activity.date),
SymbolProfile: { SymbolProfile: {
currency: activity.currency || 'CHF', currency: activity.currency || 'CHF',
dataSource: activity.dataSource || 'YAHOO', dataSource: activity.dataSource || 'YAHOO',
name: activity.name || 'Default Name', // provide a default name if missing name: activity.name || 'Default Name', // provide a default name if missing
symbol: activity.symbol || 'UNKNOWN' // provide a default symbol if missing symbol: activity.symbol || 'UNKNOWN' // provide a default symbol if missing
} }
})); }));
const portfolioCalculator = portfolioCalculatorFactory.createCalculator({ const portfolioCalculator = portfolioCalculatorFactory.createCalculator({
activities, activities: mappedactivities,
calculationType: PerformanceCalculationType.TWR, calculationType: PerformanceCalculationType.TWR,
currency: 'CHF', currency: 'CHF',
userId: userDummyData.id userId: userDummyData.id

Loading…
Cancel
Save