diff --git a/hugolib/config_test.go b/hugolib/config_test.go
index 22beea655..7e9534829 100644
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -1558,3 +1558,60 @@ title: "P1 us"
`
Test(t, files)
}
+
+func TestBaseSignalChildParent(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+-- content/_index.md --
+-- content/p1.md --
+-- layouts/_default/baseof.html --
+{{ block "_baseof_start" . }}{{ end }}
+
+
+{{/* Lots of imports of SEO partials, stylesheets, JS and whatnot. */}}
+
+
+{{ $flow := .Store.Get "_baseof_flow" | default "default" }}
+{{ if eq $flow "default" }}
+
+
Default flow
+ {{ block "main" . }}{{ end }}
+
+{{ else if eq $flow "foo" }}
+
+
Foo flow
+ {{ block "main" . }}{{ end }}
+
+{{ else if eq $flow "bar" }}
+
+
Bar flow
+ {{ block "main" . }}{{ end }}
+
+{{ end }}
+
+
+-- layouts/index.html --
+{{ define "_baseof_start" }}{{ .Page.Store.Set "_baseof_flow" "foo" }}{{ end }}
+{{ define "main" }}Main Home{{ end }}
+-- layouts/_default/single.html --
+{{ define "_baseof_start" }}{{ .Page.Store.Set "_baseof_flow" "bar" }}{{ end }}
+{{ define "main" }}Main Single{{ end }}
+
+
+`
+ b := NewIntegrationTestBuilder(
+ IntegrationTestConfig{
+ T: t,
+ TxtarString: files,
+ },
+ ).Build()
+
+ b.AssertFileContent("public/index.html", `
+Foo flow
+Main Home
+
+`)
+
+}