49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
//go:build !js
|
|
|
|
// SPDX-Licence-Identifier: EUPL-1.2
|
|
|
|
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
html "dappco.re/go/core/html"
|
|
)
|
|
|
|
func TestRenderLayout_RendersSlotsInVariantOrder(t *testing.T) {
|
|
got := renderLayout("HCF", "en-GB", map[string]html.Node{
|
|
"H": html.Raw("head"),
|
|
"C": html.Raw("body"),
|
|
"F": html.Raw("foot"),
|
|
})
|
|
|
|
want := `<header role="banner" data-block="H-0">head</header>` +
|
|
`<main role="main" data-block="C-0">body</main>` +
|
|
`<footer role="contentinfo" data-block="F-0">foot</footer>`
|
|
if got != want {
|
|
t.Fatalf("renderLayout() = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestRenderLayout_UsesLocaleAwareTextNodes(t *testing.T) {
|
|
got := renderLayout("C", "fr-FR", map[string]html.Node{
|
|
"C": html.El("p", html.Text("prompt.yes")),
|
|
})
|
|
|
|
want := `<main role="main" data-block="C-0"><p>o</p></main>`
|
|
if got != want {
|
|
t.Fatalf("renderLayout() with locale = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestRenderLayout_IgnoresMissingAndUnknownSlots(t *testing.T) {
|
|
got := renderLayout("C", "en-GB", map[string]html.Node{
|
|
"C": html.Raw("content"),
|
|
"X": html.Raw("ignored"),
|
|
})
|
|
|
|
want := `<main role="main" data-block="C-0">content</main>`
|
|
if got != want {
|
|
t.Fatalf("renderLayout() with unknown slots = %q, want %q", got, want)
|
|
}
|
|
}
|