Make core/TaxReturn an abstract class.
[ustaxlib.git] / src / fed2019 / Form8606.test.ts
1 import { Person } from '../core';
2
3 import Form1040, { FilingStatus } from './Form1040';
4 import Form8606 from './Form8606';
5 import TaxReturn from './TaxReturn';
6
7 test('skip part 1', () => {
8 const p = Person.self('A');
9 const tr = new TaxReturn();
10 const f = new Form8606({
11 person: p,
12 nondeductibleContributions: 6000,
13 traditionalIraBasis: 0,
14 distributionFromTradSepOrSimpleIraOrMadeRothConversion: false
15 });
16 tr.addForm(f);
17
18 expect(f.getValue(tr, '14')).toBe(6000);
19 });
20
21 test('Roth conversion no basis', () => {
22 const p = Person.self('A');
23 const tr = new TaxReturn();
24 const f = new Form8606({
25 person: p,
26 nondeductibleContributions: 6000,
27 traditionalIraBasis: 0,
28 distributionFromTradSepOrSimpleIraOrMadeRothConversion: true,
29 contributionsMadeInCurrentYear: 0,
30 valueOfAllTradSepSimpleIras: 0,
31 distributionsFromAllTradSepSimpleIras: 0,
32 amountConvertedFromTradSepSimpleToRoth: 6000,
33 });
34 tr.addForm(f);
35
36 expect(f.getValue(tr, '9')).toBe(6000);
37 expect(f.getValue(tr, '13')).toBe(6000);
38 expect(f.getValue(tr, '14')).toBe(0);
39 expect(f.getValue(tr, '15c')).toBe(0);
40 expect(f.getValue(tr, '16')).toBe(6000);
41 expect(f.getValue(tr, '17')).toBe(6000);
42 expect(f.getValue(tr, '18')).toBe(0);
43 });