@@ -70,6 +70,23 @@ func TestNode(t *testing.T) {
7070 end : token.Token {Kind : token .Text , Start : 12 , End : 8 },
7171 kind : ast .KindVarStatement ,
7272 },
73+ {
74+ name : "var statement no value" ,
75+ // @variable
76+ node : ast.VarStatement {
77+ Value : nil ,
78+ Ident : ast.Ident {
79+ Name : "variable" ,
80+ Token : token.Token {Kind : token .Ident , Start : 1 , End : 9 },
81+ Type : ast .KindIdent ,
82+ },
83+ At : token.Token {Kind : token .At , Start : 0 , End : 1 },
84+ Type : ast .KindVarStatement ,
85+ },
86+ start : token.Token {Kind : token .At , Start : 0 , End : 1 },
87+ end : token.Token {Kind : token .Ident , Start : 1 , End : 9 },
88+ kind : ast .KindVarStatement ,
89+ },
7390 {
7491 name : "interp only" ,
7592 // {{ hello }}
@@ -209,6 +226,10 @@ func TestNode(t *testing.T) {
209226 {
210227 name : "request" ,
211228 node : ast.Request {
229+ Body : ast.Body {
230+ Token : token.Token {Kind : token .Body , Start : 30 , End : 110 },
231+ Type : ast .KindBody ,
232+ },
212233 URL : ast.TextLiteral {
213234 Value : "https://example.com" ,
214235 Token : token.Token {Kind : token .URL , Start : 9 , End : 28 },
@@ -222,9 +243,25 @@ func TestNode(t *testing.T) {
222243 Type : ast .KindRequest ,
223244 },
224245 start : token.Token {Kind : token .Separator , Start : 0 , End : 3 },
225- end : token.Token {Kind : token .URL , Start : 9 , End : 28 },
246+ end : token.Token {Kind : token .Body , Start : 30 , End : 110 },
226247 kind : ast .KindRequest ,
227248 },
249+ {
250+ name : "inner interp" ,
251+ node : ast.Interp {
252+ Expr : ast.Ident {
253+ Name : "id" ,
254+ Token : token.Token {Kind : token .Ident , Start : 3 , End : 5 },
255+ Type : ast .KindIdent ,
256+ },
257+ Open : token.Token {Kind : token .OpenInterp , Start : 0 , End : 2 },
258+ Close : token.Token {Kind : token .CloseInterp , Start : 6 , End : 8 },
259+ Type : ast .KindInterp ,
260+ },
261+ start : token.Token {Kind : token .OpenInterp , Start : 0 , End : 2 },
262+ end : token.Token {Kind : token .CloseInterp , Start : 6 , End : 8 },
263+ kind : ast .KindInterp ,
264+ },
228265 {
229266 // https://example/com/{{ version }}/items/123
230267 // |------ left ------|-- interp --|- right -|
@@ -343,6 +380,32 @@ func TestNode(t *testing.T) {
343380 end : token.Token {Kind : token .Body , Start : 12 , End : 136 },
344381 kind : ast .KindBody ,
345382 },
383+ {
384+ name : "body file" ,
385+ node : ast.BodyFile {
386+ Token : token.Token {Kind : token .LeftAngle , Start : 31 , End : 32 },
387+ Value : ast.TextLiteral {
388+ Value : "./body.json" ,
389+ Token : token.Token {Kind : token .Text , Start : 33 , End : 44 },
390+ Type : ast .KindTextLiteral ,
391+ },
392+ Type : ast .KindBodyFile ,
393+ },
394+ start : token.Token {Kind : token .LeftAngle , Start : 31 , End : 32 },
395+ end : token.Token {Kind : token .Text , Start : 33 , End : 44 },
396+ kind : ast .KindBodyFile ,
397+ },
398+ {
399+ name : "body file no value" ,
400+ node : ast.BodyFile {
401+ Token : token.Token {Kind : token .LeftAngle , Start : 31 , End : 32 },
402+ Value : nil ,
403+ Type : ast .KindBodyFile ,
404+ },
405+ start : token.Token {Kind : token .LeftAngle , Start : 31 , End : 32 },
406+ end : token.Token {Kind : token .LeftAngle , Start : 31 , End : 32 },
407+ kind : ast .KindBodyFile ,
408+ },
346409 {
347410 name : "empty file" ,
348411 node : ast.File {Type : ast .KindFile },
0 commit comments