From 5d4d9c5c17c4a3d457fec48a22febafbd162fee6 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 11 Jul 2023 17:37:39 -0700 Subject: [PATCH] import tests --- d2ir/import_test.go | 22 + .../d2ir/TestCompile/imports/vars/2.exp.json | 401 ++++++++++++++++++ .../d2ir/TestCompile/imports/vars/3.exp.json | 401 ++++++++++++++++++ 3 files changed, 824 insertions(+) create mode 100644 testdata/d2ir/TestCompile/imports/vars/2.exp.json create mode 100644 testdata/d2ir/TestCompile/imports/vars/3.exp.json diff --git a/d2ir/import_test.go b/d2ir/import_test.go index c04cb6a25..0b9497abe 100644 --- a/d2ir/import_test.go +++ b/d2ir/import_test.go @@ -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) diff --git a/testdata/d2ir/TestCompile/imports/vars/2.exp.json b/testdata/d2ir/TestCompile/imports/vars/2.exp.json new file mode 100644 index 000000000..3107e5c6e --- /dev/null +++ b/testdata/d2ir/TestCompile/imports/vars/2.exp.json @@ -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 +} diff --git a/testdata/d2ir/TestCompile/imports/vars/3.exp.json b/testdata/d2ir/TestCompile/imports/vars/3.exp.json new file mode 100644 index 000000000..e2ddd2094 --- /dev/null +++ b/testdata/d2ir/TestCompile/imports/vars/3.exp.json @@ -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 +}