Spellcasting expansion
This commit is contained in:
@@ -1740,6 +1740,57 @@ tables:
|
||||
}
|
||||
}
|
||||
|
||||
func TestWikiTemplateRendersClassProgressionSpellcastingAdvancementNotes(t *testing.T) {
|
||||
ctx := testWikiTableContext(t, `
|
||||
tables:
|
||||
ClassProgression:
|
||||
source: class_progression
|
||||
rows:
|
||||
levels: 1-4
|
||||
columns:
|
||||
- key: level
|
||||
label: Lvl
|
||||
value: "{{Level}}"
|
||||
- key: notes
|
||||
label: Notes
|
||||
value: "{{SpellcastingAdvancementNote + if(present(SpellcastingAdvancementNote) && present(Notes), \" \", \"\") + Notes}}"
|
||||
empty: ""
|
||||
`)
|
||||
page := wikiTemplatePage{
|
||||
PageID: "classes:pale_master",
|
||||
Category: "classes",
|
||||
Key: "classes:pale_master",
|
||||
Title: "Pale Master",
|
||||
Row: map[string]any{
|
||||
"SpellCaster": 0,
|
||||
"ArcSpellLvlMod": 2,
|
||||
"DivSpellLvlMod": 0,
|
||||
"meta": map[string]any{
|
||||
"wiki": map[string]any{
|
||||
"progression_notes": map[string]any{
|
||||
"3": "Manual level note.",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
got, err := ctx.renderWikiTemplateString("classes.html", `{{table:ClassProgression}}`, page)
|
||||
if err != nil {
|
||||
t.Fatalf("render table template: %v", err)
|
||||
}
|
||||
for _, expected := range []string{
|
||||
`<tr><td>1</td><td>+1 level of existing arcane spellcasting class</td></tr>`,
|
||||
`<tr><td>2</td><td></td></tr>`,
|
||||
`<tr><td>3</td><td>+1 level of existing arcane spellcasting class Manual level note.</td></tr>`,
|
||||
`<tr><td>4</td><td></td></tr>`,
|
||||
} {
|
||||
if !strings.Contains(got, expected) {
|
||||
t.Fatalf("expected %q in rendered table:\n%s", expected, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestWikiTemplateHidesUnusedConfiguredClassSpellColumns(t *testing.T) {
|
||||
ctx := testWikiTableContext(t, `
|
||||
tables:
|
||||
|
||||
Reference in New Issue
Block a user