diff --git a/e2etests-cli/main_test.go b/e2etests-cli/main_test.go index d58e81dd7..ba496253a 100644 --- a/e2etests-cli/main_test.go +++ b/e2etests-cli/main_test.go @@ -299,6 +299,56 @@ scenarios: { assert.ErrorString(t, err, `failed to wait xmain test: e2etests-cli/d2: failed to compile target-invalid.d2: render target "b" not found`) }, }, + { + name: "target-nested-index", + run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) { + writeFile(t, dir, "target-nested-index.d2", `a +layers: { + l1: { + b + layers: { + index: { + c + layers: { + l3: { + d + } + } + } + } + } +}`) + err := runTestMain(t, ctx, dir, env, "--target", `l1.index.l3`, "target-nested-index.d2", "target-nested-index.svg") + assert.Success(t, err) + svg := readFile(t, dir, "target-nested-index.svg") + assert.Testdata(t, ".svg", svg) + }, + }, + { + name: "target-nested-index2", + run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) { + writeFile(t, dir, "target-nested-index2.d2", `a +layers: { + index: { + b + layers: { + nest1: { + c + scenarios: { + nest2: { + d + } + } + } + } + } +}`) + err := runTestMain(t, ctx, dir, env, "--target", `index.nest1.nest2`, "target-nested-index2.d2", "target-nested-index2.svg") + assert.Success(t, err) + svg := readFile(t, dir, "target-nested-index2.svg") + assert.Testdata(t, ".svg", svg) + }, + }, { name: "multiboard/life", run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) { diff --git a/e2etests-cli/testdata/TestCLI_E2E/target-nested-index.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/target-nested-index.exp.svg new file mode 100644 index 000000000..1ab9a830e --- /dev/null +++ b/e2etests-cli/testdata/TestCLI_E2E/target-nested-index.exp.svg @@ -0,0 +1,95 @@ +b + + + diff --git a/e2etests-cli/testdata/TestCLI_E2E/target-nested-index2.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/target-nested-index2.exp.svg new file mode 100644 index 000000000..640d152bd --- /dev/null +++ b/e2etests-cli/testdata/TestCLI_E2E/target-nested-index2.exp.svg @@ -0,0 +1,95 @@ +a + + +