@@ -111,17 +111,17 @@ describe('Workspace Transpilation traces', function() {
111
111
expect ( sourceRoot . getSimpleType ( ) ) . to . eql ( "CompilationUnit" )
112
112
expect ( sourceRoot . getPosition ( ) ) . to . eql ( new Position ( new Point ( 1 , 0 ) , new Point ( 82 , 18 ) ) )
113
113
114
- const refExpr = pipe ( sourceRoot . walkDescendants ( ) ,
114
+ let refExpr = pipe ( sourceRoot . walkDescendants ( ) ,
115
115
filter ( ( node : TraceNode ) => node . getType ( ) == "com.strumenta.rpgparser.model.ReferenceExpr" ) ,
116
116
first ( ) ) . first as TraceNode ;
117
117
expect ( refExpr ) . not . to . be . undefined ;
118
118
expect ( refExpr . getPathFromRoot ( ) ) . to . eql ( [ "mainStatements" , 0 , "expression" , "target" ] ) ;
119
- const refDef = refExpr . nodeDefinition . features [ "dataDefinition" ] ;
119
+ let refDef = refExpr . nodeDefinition . features [ "dataDefinition" ] ;
120
120
expect ( refDef ?. reference ) . to . be . true ;
121
- const reference = refExpr . getReference ( "dataDefinition" ) ;
121
+ let reference = refExpr . getReference ( "dataDefinition" ) ;
122
122
expect ( reference ) . to . be . instanceof ( ReferenceByName ) ;
123
123
expect ( reference ?. name ) . to . equal ( "CNT" ) ;
124
- const refTarget = reference ?. referred ;
124
+ let refTarget = reference ?. referred ;
125
125
expect ( refTarget ) . to . be . instanceof ( TraceNode ) ;
126
126
expect ( refTarget ?. getType ( ) ) . to . equal ( "com.strumenta.rpgparser.model.StandaloneField" ) ;
127
127
expect ( refTarget ?. name ) . to . equal ( "CNT" ) ;
@@ -130,6 +130,21 @@ describe('Workspace Transpilation traces', function() {
130
130
expect ( refTarget ?. getRoot ( ) ) . to . equal ( sourceRoot ) ;
131
131
expect ( refExpr . getAttributes ( ) [ "dataDefinition" ] ) . to . be . undefined ;
132
132
133
+ refExpr = sourceRoot . getDescendant ( [ "mainStatements" , 4 , "name" ] ) as TraceNode ;
134
+ refDef = refExpr . nodeDefinition . features [ "dataDefinition" ] ;
135
+ expect ( refDef ?. reference ) . to . be . true ;
136
+ reference = refExpr . getReference ( "dataDefinition" ) ;
137
+ expect ( reference ) . to . be . instanceof ( ReferenceByName ) ;
138
+ expect ( reference ?. name ) . to . equal ( "CUSTOMER" ) ;
139
+ refTarget = reference ?. referred ;
140
+ expect ( refTarget ) . to . be . instanceof ( TraceNode ) ;
141
+ expect ( refTarget ?. getType ( ) ) . to . equal ( "com.strumenta.rpgparser.model.ExternalFileDefinition" ) ;
142
+ expect ( refTarget ?. name ) . to . equal ( "CUSTOMER" ) ;
143
+ expect ( refTarget ?. getRole ( ) ) . to . equal ( "file" ) ;
144
+ expect ( refTarget ?. getPathFromRoot ( ) ) . to . eql ( [ "externalDefinitions" , 17 , "record" , "file" ] ) ;
145
+ expect ( refTarget ?. getRoot ( ) ) . to . equal ( sourceRoot ) ;
146
+ expect ( refExpr . getAttributes ( ) [ "dataDefinition" ] ) . to . be . undefined ;
147
+
133
148
// TODO broken expect(cus300File.node.getChildren("dataDefinition").length).to.eql(4)
134
149
expect ( sourceRoot . getChildren ( "mainStatements" ) . length ) . to . eql ( 9 )
135
150
const firstStatement = sourceRoot . getChildren ( "mainStatements" ) [ 0 ] ;
0 commit comments