From d2f60d5319a4d1a3b294d3acf17419ecefab6fab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Fri, 1 Aug 2025 17:25:55 +0200 Subject: [PATCH 1/3] New test getRangeForField --- src/tests/dspf.test.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/tests/dspf.test.ts b/src/tests/dspf.test.ts index 19514db..fe358e7 100644 --- a/src/tests/dspf.test.ts +++ b/src/tests/dspf.test.ts @@ -16,6 +16,12 @@ describe('DisplayFile tests', () => { ` A R GLOBAL `, ` A SLNO(04) `, ` A 1 3'---' `, + ` A R FORM1 `, + ` A SLNO(06) `, + ` A FLD0101 10A B 3 5 `, + ` A 20 DSPATR(PR) `, + ` A COLOR(YLW) `, + ` A FLD0102 10 B 3 5 `, ]; it('getRangeForFormat', () => { @@ -35,6 +41,24 @@ describe('DisplayFile tests', () => { expect(range?.end).toBe(3); }); + it('getRangeForField', () => { + let dds = new DisplayFile(); + dds.parse(dspf1); + + let range: DdsLineRange | undefined; + + expect(dds.getRangeForField(`FORM1`, `UNKNOWN`)).toBeUndefined(); + + range = dds.getRangeForField(`FORM1`, `FLD0101`); + expect(range?.start).toBe(14); + expect(range?.end).toBe(16); + + range = dds.getRangeForField(`FORM1`, `FLD0102`); + expect(range?.start).toBe(17); + expect(range?.end).toBe(17); + + }); + it('No duplicate RecordInfo', () => { let dds = new DisplayFile(); dds.parse(dspf1); From 71d9d02e472a2a0082720b83938a812687d33a51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Fri, 1 Aug 2025 19:34:09 +0200 Subject: [PATCH 2/3] New test getLinesForField --- src/tests/dspf.test.ts | 39 ++++++++++++++++++++++++++++++++++++++- src/ui/dspf.ts | 2 -- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/tests/dspf.test.ts b/src/tests/dspf.test.ts index fe358e7..dcefd1d 100644 --- a/src/tests/dspf.test.ts +++ b/src/tests/dspf.test.ts @@ -1,5 +1,5 @@ import { expect, describe, it } from "vitest"; -import { DdsLineRange, DisplayFile } from "../ui/dspf"; +import { DdsLineRange, DisplayFile, FieldInfo } from "../ui/dspf"; describe('DisplayFile tests', () => { @@ -59,6 +59,43 @@ describe('DisplayFile tests', () => { }); + it('getLinesForField', () => { + + let dds = new DisplayFile(); + + let field = new FieldInfo(0); + field.displayType = `const`; + field.value = `Some text`; + field.position.x = 10; + field.position.y = 4; + + let lines = DisplayFile.getLinesForField(field); + + expect(lines.length).toBe(1); + expect(lines[0]).toBe(` A 4 10'Some text'`); + + field.keywords.push( + { + name: "COLOR(BLU)", + conditions: [] + }, + { + name: "DSPATR(PR)", + conditions: [{ + indicator: 21, + negate: true + }] + } + ); + + lines = DisplayFile.getLinesForField(field); + expect(lines.length).toBe(3); + expect(lines[0]).toBe(` A 4 10'Some text'`); + expect(lines[1]).toBe(` A COLOR(BLU)`); + expect(lines[2]).toBe(` A N21 DSPATR(PR)`); + + }); + it('No duplicate RecordInfo', () => { let dds = new DisplayFile(); dds.parse(dspf1); diff --git a/src/ui/dspf.ts b/src/ui/dspf.ts index 955c0ab..7440563 100644 --- a/src/ui/dspf.ts +++ b/src/ui/dspf.ts @@ -351,7 +351,6 @@ export class DisplayFile { return result; } - // TODO: test cases public static getLinesForField(field: FieldInfo): string[] { const newLines: string[] = []; @@ -391,7 +390,6 @@ export class DisplayFile { return newLines; } - // TODO: test cases public getRangeForField(recordFormat: string, fieldName: string): DdsLineRange|undefined { let range: DdsLineRange|undefined = undefined; const currentFormatI = this.formats.findIndex(format => format.name === recordFormat); From 5da2666843e43789c9f754bccf020b798eae5467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Sat, 2 Aug 2025 08:31:32 +0200 Subject: [PATCH 3/3] fix: dds keyword values --- src/tests/dspf.test.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/tests/dspf.test.ts b/src/tests/dspf.test.ts index dcefd1d..cc5469a 100644 --- a/src/tests/dspf.test.ts +++ b/src/tests/dspf.test.ts @@ -76,15 +76,14 @@ describe('DisplayFile tests', () => { field.keywords.push( { - name: "COLOR(BLU)", + name: "COLOR", + value: "BLU", conditions: [] }, { - name: "DSPATR(PR)", - conditions: [{ - indicator: 21, - negate: true - }] + name: "DSPATR", + value: "PR", + conditions: [] } ); @@ -92,7 +91,7 @@ describe('DisplayFile tests', () => { expect(lines.length).toBe(3); expect(lines[0]).toBe(` A 4 10'Some text'`); expect(lines[1]).toBe(` A COLOR(BLU)`); - expect(lines[2]).toBe(` A N21 DSPATR(PR)`); + expect(lines[2]).toBe(` A DSPATR(PR)`); });