|
- package handlers
-
- import (
- "testing"
-
- "qctextbuilder/internal/domain"
- )
-
- func TestExtractBlockID(t *testing.T) {
- t.Parallel()
-
- tests := []struct {
- name string
- f domain.TemplateField
- want string
- }{
- {
- name: "from key",
- f: domain.TemplateField{
- KeyName: "textTitle_m1710_1",
- Path: "text.textTitle_m1710_1",
- },
- want: "m1710",
- },
- {
- name: "from path",
- f: domain.TemplateField{
- KeyName: "servicesTitle_8",
- Path: "services.servicesTitle_r4830_8",
- },
- want: "r4830",
- },
- {
- name: "none",
- f: domain.TemplateField{
- KeyName: "plainTitle",
- Path: "text.plainTitle",
- },
- want: "",
- },
- }
-
- for _, tc := range tests {
- tc := tc
- t.Run(tc.name, func(t *testing.T) {
- t.Parallel()
- got := extractBlockID(tc.f)
- if got != tc.want {
- t.Fatalf("extractBlockID() = %q, want %q", got, tc.want)
- }
- })
- }
- }
-
- func TestApplyTextGroupingPrefersBlockID(t *testing.T) {
- t.Parallel()
-
- section := buildFieldSectionView{Key: "text", Title: "Text"}
- fields := []pendingField{
- {
- Field: domain.TemplateField{
- Section: "text",
- KeyName: "textTitle_m1710_1",
- Path: "text.textTitle_m1710_1",
- DisplayLabel: "text.textTitle_m1710_1",
- },
- View: buildFieldView{Path: "text.textTitle_m1710_1"},
- },
- {
- Field: domain.TemplateField{
- Section: "ext",
- KeyName: "textDescription_c7886_3",
- Path: "ext.textDescription_c7886_3",
- DisplayLabel: "ext.textDescription_c7886_3",
- },
- View: buildFieldView{Path: "ext.textDescription_c7886_3"},
- },
- {
- Field: domain.TemplateField{
- Section: "text",
- KeyName: "textDescription_m1710_2",
- Path: "text.textDescription_m1710_2",
- DisplayLabel: "text.textDescription_m1710_2",
- },
- View: buildFieldView{Path: "text.textDescription_m1710_2"},
- },
- }
-
- got := applyTextGrouping(section, fields)
- if len(got.EditableGroups) != 2 {
- t.Fatalf("expected 2 block groups, got %d", len(got.EditableGroups))
- }
- if got.EditableGroups[0].Title != "Hero / Haupttitel (m1710)" {
- t.Fatalf("unexpected first group title: %q", got.EditableGroups[0].Title)
- }
- if len(got.EditableGroups[0].Fields) != 2 {
- t.Fatalf("expected 2 fields in first group, got %d", len(got.EditableGroups[0].Fields))
- }
- if got.EditableGroups[1].Title != "Intro / Einleitung (c7886)" {
- t.Fatalf("unexpected second group title: %q", got.EditableGroups[1].Title)
- }
- }
-
- func TestPreferredBuildSectionUsesWebsiteSectionFirst(t *testing.T) {
- t.Parallel()
-
- field := domain.TemplateField{
- Section: "text",
- WebsiteSection: domain.WebsiteSectionCTA,
- KeyName: "textTitle",
- Path: "text.textTitle",
- }
- got := preferredBuildSection(field)
- if got != domain.WebsiteSectionCTA {
- t.Fatalf("preferredBuildSection() = %q, want %q", got, domain.WebsiteSectionCTA)
- }
- }
|