1
+ const assert = require ( "assert" ) ;
2
+ const { DisplayFile } = require ( "../src/dspf" ) ;
3
+ const depts = require ( "./file/depts" ) ;
4
+
5
+ exports . testa = ( ) => {
6
+ const file = new DisplayFile ( ) ;
7
+ file . parse ( depts . lines ) ;
8
+
9
+ assert . strictEqual ( file . formats . length , 4 ) ;
10
+
11
+ // Testing: window size, keywords
12
+
13
+ const globalFormat = file . formats [ 0 ] ;
14
+ assert . strictEqual ( globalFormat . name , `GLOBAL` ) ;
15
+ assert . deepStrictEqual ( globalFormat . windowSize , {
16
+ height : 24 , width : 80 , x : 0 , y : 0
17
+ } ) ;
18
+ assert . strictEqual ( globalFormat . keywords . length , 2 ) ;
19
+ assert . deepStrictEqual ( globalFormat . keywords [ 0 ] , {
20
+ name : `INDARA` , value : undefined , conditions : [ ]
21
+ } ) ;
22
+ assert . deepStrictEqual ( globalFormat . keywords [ 1 ] , {
23
+ name : `CA03` , value : `03` , conditions : [ ]
24
+ } ) ;
25
+
26
+ // Field type tests:
27
+
28
+ const subfileData = file . formats [ 1 ] ;
29
+ assert . strictEqual ( subfileData . name , `SFLDTA` ) ;
30
+ assert . deepStrictEqual ( subfileData . keywords [ 0 ] , {
31
+ name : `SFL` , value : undefined , conditions : [ ]
32
+ } ) ;
33
+
34
+ const rrnField = subfileData . fields [ 0 ] ;
35
+ assert . strictEqual ( rrnField . type , `decimal` ) ;
36
+ assert . strictEqual ( rrnField . length , 4 ) ;
37
+ assert . strictEqual ( rrnField . decimals , 0 ) ;
38
+ assert . strictEqual ( rrnField . displayType , `hidden` ) ;
39
+ assert . strictEqual ( rrnField . name , `RRN` ) ;
40
+ assert . deepStrictEqual ( rrnField . position , { x : 0 , y : 0 } ) ;
41
+
42
+ const xselField = subfileData . fields [ 1 ] ;
43
+ assert . strictEqual ( xselField . type , `char` ) ;
44
+ assert . strictEqual ( xselField . length , 1 ) ;
45
+ assert . strictEqual ( xselField . decimals , 0 ) ;
46
+ assert . strictEqual ( xselField . displayType , `both` ) ;
47
+ assert . strictEqual ( xselField . name , `XSEL` ) ;
48
+ assert . deepStrictEqual ( xselField . position , { x : 8 , y : 7 } ) ;
49
+
50
+ const xidField = subfileData . fields [ 2 ] ;
51
+ assert . strictEqual ( xidField . type , `char` ) ;
52
+ assert . strictEqual ( xidField . length , 3 ) ;
53
+ assert . strictEqual ( xidField . decimals , 0 ) ;
54
+ assert . strictEqual ( xidField . displayType , `output` ) ;
55
+ assert . strictEqual ( xidField . name , `XID` ) ;
56
+ assert . deepStrictEqual ( xidField . position , { x : 12 , y : 7 } ) ;
57
+
58
+ const xnameField = subfileData . fields [ 3 ] ;
59
+ assert . strictEqual ( xnameField . type , `char` ) ;
60
+ assert . strictEqual ( xnameField . length , 38 ) ;
61
+ assert . strictEqual ( xnameField . decimals , 0 ) ;
62
+ assert . strictEqual ( xnameField . displayType , `output` ) ;
63
+ assert . strictEqual ( xnameField . name , `XNAME` ) ;
64
+ assert . deepStrictEqual ( xnameField . position , { x : 16 , y : 7 } ) ;
65
+
66
+ // Const (text field) tests
67
+
68
+ const subfileControl = file . formats [ 2 ] ;
69
+ assert . strictEqual ( subfileControl . fields . length , 4 ) ;
70
+ assert . strictEqual ( subfileControl . keywords . length , 7 ) ;
71
+
72
+ const text1 = subfileControl . fields [ 1 ] ;
73
+ assert . strictEqual ( text1 . name , `TEXT1` ) ;
74
+ assert . strictEqual ( text1 . displayType , `const` ) ;
75
+ assert . strictEqual ( text1 . value , `Opt` ) ;
76
+ assert . deepStrictEqual ( text1 . position , { x : 6 , y : 6 } ) ;
77
+ assert . deepStrictEqual ( text1 . keywords , [
78
+ { name : `DSPATR` , value : `HI` , conditions : [ ] } ,
79
+ { name : `DSPATR` , value : `UL` , conditions : [ ] }
80
+ ] ) ;
81
+
82
+ // Keywords on same line tests
83
+ const footer = file . formats [ 3 ] ;
84
+ assert . strictEqual ( footer . fields . length , 3 ) ;
85
+ assert . strictEqual ( footer . keywords . length , 1 ) ;
86
+
87
+ const sameLineField = footer . fields [ 2 ] ;
88
+ assert . strictEqual ( sameLineField . name , `TEXT6` ) ;
89
+ assert . strictEqual ( sameLineField . displayType , `const` ) ;
90
+ assert . strictEqual ( sameLineField . value , `5=View` ) ;
91
+ assert . deepStrictEqual ( sameLineField . position , { x : 6 , y : 4 } ) ;
92
+ assert . deepStrictEqual ( sameLineField . keywords , [
93
+ { name : `COLOR` , value : `BLU` , conditions : [ ] } ,
94
+ ] ) ;
95
+ }
0 commit comments