import tests
This commit is contained in:
parent
af69e6f626
commit
5d4d9c5c17
3 changed files with 824 additions and 0 deletions
|
|
@ -149,6 +149,28 @@ label: meow`,
|
|||
assertQuery(t, m, 0, 0, "var replaced", "q")
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "vars/2",
|
||||
run: func(t testing.TB) {
|
||||
m, err := compileFS(t, "index.d2", map[string]string{
|
||||
"index.d2": "vars: { x: 1 }; ...@a",
|
||||
"a.d2": "vars: { x: 2 }; hi: ${x}",
|
||||
})
|
||||
assert.Success(t, err)
|
||||
assertQuery(t, m, 0, 0, 2, "hi")
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "vars/3",
|
||||
run: func(t testing.TB) {
|
||||
m, err := compileFS(t, "index.d2", map[string]string{
|
||||
"index.d2": "...@a; vars: { x: 1 }; hi: ${x}",
|
||||
"a.d2": "vars: { x: 2 }",
|
||||
})
|
||||
assert.Success(t, err)
|
||||
assertQuery(t, m, 0, 0, 1, "hi")
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
runa(t, tca)
|
||||
|
|
|
|||
401
testdata/d2ir/TestCompile/imports/vars/2.exp.json
generated
vendored
Normal file
401
testdata/d2ir/TestCompile/imports/vars/2.exp.json
generated
vendored
Normal file
|
|
@ -0,0 +1,401 @@
|
|||
{
|
||||
"fields": [
|
||||
{
|
||||
"name": "vars",
|
||||
"composite": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "x",
|
||||
"primary": {
|
||||
"value": {
|
||||
"range": "a.d2,0:11:11-0:12:12",
|
||||
"raw": "2",
|
||||
"value": "2"
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"string": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "index.d2,0:8:8-0:13:13",
|
||||
"key": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "index.d2,0:11:11-0:12:12",
|
||||
"raw": "1",
|
||||
"value": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "a.d2,0:8:8-0:13:13",
|
||||
"key": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "a.d2,0:11:11-0:12:12",
|
||||
"raw": "2",
|
||||
"value": "2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"edges": null
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"string": {
|
||||
"range": "index.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "index.d2,0:0:0-0:4:4",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "index.d2,0:0:0-0:14:14",
|
||||
"key": {
|
||||
"range": "index.d2,0:0:0-0:4:4",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"map": {
|
||||
"range": "index.d2,0:6:6-0:14:14",
|
||||
"nodes": [
|
||||
{
|
||||
"map_key": {
|
||||
"range": "index.d2,0:8:8-0:13:13",
|
||||
"key": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "index.d2,0:11:11-0:12:12",
|
||||
"raw": "1",
|
||||
"value": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"string": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "a.d2,0:0:0-0:14:14",
|
||||
"key": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"map": {
|
||||
"range": "a.d2,0:6:6-0:14:14",
|
||||
"nodes": [
|
||||
{
|
||||
"map_key": {
|
||||
"range": "a.d2,0:8:8-0:13:13",
|
||||
"key": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "a.d2,0:11:11-0:12:12",
|
||||
"raw": "2",
|
||||
"value": "2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hi",
|
||||
"primary": {
|
||||
"value": {
|
||||
"range": "a.d2,0:11:11-0:12:12",
|
||||
"raw": "2",
|
||||
"value": "2"
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"string": {
|
||||
"range": "a.d2,0:16:16-0:18:18",
|
||||
"value": [
|
||||
{
|
||||
"string": "hi",
|
||||
"raw_string": "hi"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "a.d2,0:16:16-0:18:18",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:16:16-0:18:18",
|
||||
"value": [
|
||||
{
|
||||
"string": "hi",
|
||||
"raw_string": "hi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "a.d2,0:16:16-0:24:24",
|
||||
"key": {
|
||||
"range": "a.d2,0:16:16-0:18:18",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:16:16-0:18:18",
|
||||
"value": [
|
||||
{
|
||||
"string": "hi",
|
||||
"raw_string": "hi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:20:20-0:21:21",
|
||||
"value": [
|
||||
{
|
||||
"substitution": {
|
||||
"range": "a.d2,0:20:20-0:24:24",
|
||||
"spread": false,
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:22:22-0:23:23",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"edges": null
|
||||
}
|
||||
401
testdata/d2ir/TestCompile/imports/vars/3.exp.json
generated
vendored
Normal file
401
testdata/d2ir/TestCompile/imports/vars/3.exp.json
generated
vendored
Normal file
|
|
@ -0,0 +1,401 @@
|
|||
{
|
||||
"fields": [
|
||||
{
|
||||
"name": "vars",
|
||||
"composite": {
|
||||
"fields": [
|
||||
{
|
||||
"name": "x",
|
||||
"primary": {
|
||||
"value": {
|
||||
"range": "index.d2,0:18:18-0:19:19",
|
||||
"raw": "1",
|
||||
"value": "1"
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "a.d2,0:8:8-0:13:13",
|
||||
"key": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "a.d2,0:11:11-0:12:12",
|
||||
"raw": "2",
|
||||
"value": "2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"string": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "index.d2,0:15:15-0:20:20",
|
||||
"key": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "index.d2,0:18:18-0:19:19",
|
||||
"raw": "1",
|
||||
"value": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"edges": null
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"string": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "a.d2,0:0:0-0:14:14",
|
||||
"key": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:0:0-0:4:4",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"map": {
|
||||
"range": "a.d2,0:6:6-0:14:14",
|
||||
"nodes": [
|
||||
{
|
||||
"map_key": {
|
||||
"range": "a.d2,0:8:8-0:13:13",
|
||||
"key": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "a.d2,0:8:8-0:9:9",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "a.d2,0:11:11-0:12:12",
|
||||
"raw": "2",
|
||||
"value": "2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"string": {
|
||||
"range": "index.d2,0:7:7-0:11:11",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "index.d2,0:7:7-0:11:11",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:7:7-0:11:11",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "index.d2,0:7:7-0:21:21",
|
||||
"key": {
|
||||
"range": "index.d2,0:7:7-0:11:11",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:7:7-0:11:11",
|
||||
"value": [
|
||||
{
|
||||
"string": "vars",
|
||||
"raw_string": "vars"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"map": {
|
||||
"range": "index.d2,0:13:13-0:21:21",
|
||||
"nodes": [
|
||||
{
|
||||
"map_key": {
|
||||
"range": "index.d2,0:15:15-0:20:20",
|
||||
"key": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:15:15-0:16:16",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"number": {
|
||||
"range": "index.d2,0:18:18-0:19:19",
|
||||
"raw": "1",
|
||||
"value": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hi",
|
||||
"primary": {
|
||||
"value": {
|
||||
"range": "index.d2,0:18:18-0:19:19",
|
||||
"raw": "1",
|
||||
"value": "1"
|
||||
}
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"string": {
|
||||
"range": "index.d2,0:23:23-0:25:25",
|
||||
"value": [
|
||||
{
|
||||
"string": "hi",
|
||||
"raw_string": "hi"
|
||||
}
|
||||
]
|
||||
},
|
||||
"key_path": {
|
||||
"range": "index.d2,0:23:23-0:25:25",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:23:23-0:25:25",
|
||||
"value": [
|
||||
{
|
||||
"string": "hi",
|
||||
"raw_string": "hi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"context": {
|
||||
"edge": null,
|
||||
"key": {
|
||||
"range": "index.d2,0:23:23-0:31:31",
|
||||
"key": {
|
||||
"range": "index.d2,0:23:23-0:25:25",
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:23:23-0:25:25",
|
||||
"value": [
|
||||
{
|
||||
"string": "hi",
|
||||
"raw_string": "hi"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"primary": {},
|
||||
"value": {
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:27:27-0:28:28",
|
||||
"value": [
|
||||
{
|
||||
"substitution": {
|
||||
"range": "index.d2,0:27:27-0:31:31",
|
||||
"spread": false,
|
||||
"path": [
|
||||
{
|
||||
"unquoted_string": {
|
||||
"range": "index.d2,0:29:29-0:30:30",
|
||||
"value": [
|
||||
{
|
||||
"string": "x",
|
||||
"raw_string": "x"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"edges": null
|
||||
}
|
||||
Loading…
Reference in a new issue