diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 5a56d1e89..b2ec3e863 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -3894,6 +3894,20 @@ svc_1.t2 -> b: do with B tassert.Equal(t, "d2/testdata/d2compiler/TestCompile/meow.d2", g.Layers[0].Layers[0].AST.Range.Path) }, }, + { + name: "test-gradient-fill-values-in-sketch-mode", + text: ` + vars: { + d2-config: { + sketch: true + } + } + x->y + x.style.fill: "linear-gradient(#000000, #ffffff)" + y.style.fill: "linear-gradient(#ffffff, #000000)" + `, + expErr: "", + }, } for _, tc := range testCases { diff --git a/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.exp.json b/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.exp.json new file mode 100644 index 000000000..b7dae79a0 --- /dev/null +++ b/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.exp.json @@ -0,0 +1,497 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,0:0:0-9:3:183", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,1:4:5-5:5:62", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,1:4:5-1:8:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,1:4:5-1:8:9", + "value": [ + { + "string": "vars", + "raw_string": "vars" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,1:10:11-5:5:62", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,2:5:18-4:6:56", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,2:5:18-2:14:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,2:5:18-2:14:27", + "value": [ + { + "string": "d2-config", + "raw_string": "d2-config" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,2:16:29-4:6:56", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,3:6:37-3:18:49", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,3:6:37-3:12:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,3:6:37-3:12:43", + "value": [ + { + "string": "sketch", + "raw_string": "sketch" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "boolean": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,3:14:45-3:18:49", + "value": true + } + } + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:4:67-6:8:71", + "edges": [ + { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:4:67-6:8:71", + "src": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:4:67-6:5:68", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:4:67-6:5:68", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:7:70-6:8:71", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:7:70-6:8:71", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:4:76-7:53:125", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:4:76-7:16:88", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:4:76-7:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:6:78-7:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:12:84-7:16:88", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:18:90-7:53:125", + "value": [ + { + "string": "linear-gradient(#000000, #ffffff)", + "raw_string": "linear-gradient(#000000, #ffffff)" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:4:130-8:53:179", + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:4:130-8:16:142", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:4:130-8:5:131", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:6:132-8:11:137", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:12:138-8:16:142", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "double_quoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:18:144-8:53:179", + "value": [ + { + "string": "linear-gradient(#ffffff, #000000)", + "raw_string": "linear-gradient(#ffffff, #000000)" + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "iconStyle": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "iconStyle": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "x", + "id_val": "x", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:4:67-6:5:68", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:4:67-6:5:68", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:4:76-7:16:88", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:4:76-7:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:6:78-7:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,7:12:84-7:16:88", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "fill": { + "value": "linear-gradient(#000000, #ffffff)" + } + }, + "iconStyle": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "y", + "id_val": "y", + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:7:70-6:8:71", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,6:7:70-6:8:71", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:4:130-8:16:142", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:4:130-8:5:131", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:6:132-8:11:137", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile/test-gradient-fill-values-in-sketch-mode.d2,8:12:138-8:16:142", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "y" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "fill": { + "value": "linear-gradient(#ffffff, #000000)" + } + }, + "iconStyle": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + }, + "err": null +}