Skip to content

Commit 5245adc

Browse files
committed
Add tests for generating fields and keywords in DisplayFile
Signed-off-by: worksofliam <[email protected]>
1 parent e0166c1 commit 5245adc

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/tests/dspf.test.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { expect, describe, it } from "vitest";
22
import { DdsLineRange, DisplayFile, FieldInfo } from "../ui/dspf";
3+
import exp from "constants";
34

45
describe('DisplayFile tests', () => {
56

@@ -56,6 +57,44 @@ describe('DisplayFile tests', () => {
5657
range = dds.getRangeForField(`FORM1`, `FLD0102`);
5758
expect(range?.start).toBe(17);
5859
expect(range?.end).toBe(17);
60+
});
61+
62+
it('generates the same as what is provided', () => {
63+
let dds = new DisplayFile();
64+
dds.parse(dspf1);
65+
66+
const form1 = dds.formats.find(f => f.name === `FORM1`);
67+
expect(form1).toBeDefined();
68+
69+
const FLD0101 = form1?.fields.find(f => f.name === `FLD0101`);
70+
expect(FLD0101).toBeDefined();
71+
expect(FLD0101?.keywords.length).toBe(2);
72+
73+
const DSPATR = FLD0101?.keywords.find(k => k.name === `DSPATR`);
74+
expect(DSPATR).toBeDefined();
75+
expect(DSPATR?.value).toBe(`PR`);
76+
expect(DSPATR?.conditions.length).toBe(1);
77+
78+
const cond = DSPATR?.conditions[0];
79+
expect(cond).toBeDefined();
80+
expect(cond?.indicator).toBe(20);
81+
expect(cond?.negate).toBeFalsy();
82+
83+
const generatedKeywordLines = DisplayFile.getLinesForKeyword(DSPATR!);
84+
expect(generatedKeywordLines.length).toBe(1);
85+
expect(generatedKeywordLines[0]).toBe(dspf1[15].trimEnd());
86+
87+
const generateFieldLines = DisplayFile.getLinesForField(FLD0101!);
88+
expect(generateFieldLines.length).toBe(3);
89+
90+
expect(generateFieldLines[0]).toBe(dspf1[14].trimEnd());
91+
expect(generateFieldLines[1]).toBe(dspf1[15].trimEnd());
92+
expect(generateFieldLines[2]).toBe(dspf1[16].trimEnd());
93+
94+
const generatedRecordFormatLines = DisplayFile.getHeaderLinesForFormat(form1!.name, form1!.keywords);
95+
expect(generatedRecordFormatLines.length).toBe(2);
96+
expect(generatedRecordFormatLines[0]).toBe(dspf1[12].trimEnd());
97+
expect(generatedRecordFormatLines[1]).toBe(dspf1[13].trimEnd());
5998

6099
});
61100

0 commit comments

Comments
 (0)