import { render, screen } from '@testing-library/react'
import { describe, expect, it } from 'vitest'
import type { PositionWithPrice } from '@/shared/api'
import { BondPositionTable } from './BondPositionTable'
vi.mock('@tanstack/react-router', () => ({
Link: ({ children }: { children: React.ReactNode }) => {children},
}))
const positions: PositionWithPrice[] = [
{
id: 1,
secid: 'SU26238RMFS5',
shortName: 'ОФЗ 26238',
type: 'bond',
quantity: 5,
buyPrice: 980,
buyDate: null,
notes: null,
tags: null,
currentPrice: 985,
totalCost: 4900,
currentValue: 4925,
weightPercent: 7.5,
pnl: 25,
pnlPercent: 0.5,
dividendIncome: null,
totalReturn: null,
totalReturnPercent: null,
change: 5,
changePercent: 0.5,
yieldToMaturity: 8.2,
duration: 3.5,
couponValue: 36.9,
couponPercent: 7.5,
nextCouponDate: '2024-07-15',
matDate: '2027-05-15',
accruedInt: 8.45,
bid: 984,
offer: 986,
couponPeriod: 182,
bondType: 'ОФЗ',
offerDate: null,
},
]
describe('BondPositionTable', () => {
it('renders section title and bond row', () => {
render(
undefined}
onDeletePosition={() => undefined}
/>,
)
expect(screen.getByText('Облигации')).toBeInTheDocument()
expect(screen.getByText('SU26238RMFS5')).toBeInTheDocument()
expect(screen.getByText('ОФЗ 26238')).toBeInTheDocument()
})
it('renders nothing when there are no positions', () => {
const { container } = render(
undefined}
onDeletePosition={() => undefined}
/>,
)
expect(container).toBeEmptyDOMElement()
})
})