1 import Person from '../Person';
2 import TaxReturn from '../TaxReturn';
4 import Form1040, { FilingStatus, Schedule2 } from './Form1040';
5 import Form1099DIV from './Form1099DIV';
6 import Form1099INT from './Form1099INT';
7 import Form8959 from './Form8959';
8 import FormW2 from './FormW2';
10 test('w2 wages', () => {
11 const pa = Person.self('A');
12 const pb = Person.spouse('B');
13 const tr = new TaxReturn(2019);
14 tr.addForm(new FormW2({ employer: 'AA', employee: pa, wages: 1000000.00, fedIncomeTax: 0 }));
15 tr.addForm(new FormW2({ employer: 'BB', employee: pb, wages: 36.32, fedIncomeTax: 0 }));
16 const f1040 = new Form1040({ filingStatus: FilingStatus.MarriedFilingJoint });
18 tr.addForm(new Schedule2);
19 tr.addForm(new Form8959);
20 expect(f1040.getValue(tr, '1')).toBe(1000036.32);
21 f1040.getValue(tr, '23');
24 test('interest income', () => {
25 const p = Person.self('A');
26 const tr = new TaxReturn(2019);
27 tr.addForm(new Form1099INT({
33 tr.addForm(new Form1099INT({
40 const f1040 = new Form1040();
43 expect(f1040.getValue(tr, '2a')).toBe(95);
44 expect(f1040.getValue(tr, '2b')).toBe(103.5);
47 test('dividend income', () => {
48 const p = Person.self('A');
49 const tr = new TaxReturn(2019);
50 const f1099div = new Form1099DIV({
53 ordinaryDividends: 100,
54 qualifiedDividends: 75,
60 const f1040 = new Form1040();
63 expect(f1040.getValue(tr, '3a')).toBe(75 * 2);
64 expect(f1040.getValue(tr, '3b')).toBe(200);