Fix Platzhalter Editer im TemplateDesigner
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
2026-08-30 22:30:26 +02:00
parent 6468596bf3
commit 9f28081931
5 changed files with 94 additions and 17 deletions
@@ -42,6 +42,42 @@ public sealed class ProjectLifecycleTests
Assert.Equal("2026/27", manifest.Metadata["school-year"]);
}
[Fact]
public void PlatzhalterAnlegen_WaehltIhnAusUndUebernimmtBearbeiteteDefinition()
{
var viewModel = new DesignerViewModel();
viewModel.Placeholders.Clear();
var placeholder = viewModel.AddPlaceholder();
placeholder.Name = "Sprache";
placeholder.Type = LehrerApp.Templating.PlaceholderType.Text;
placeholder.Required = true;
placeholder.Sample = "Deutsch";
Assert.Same(placeholder, viewModel.SelectedPlaceholder);
var definition = Assert.Single(viewModel.BuildManifest().Placeholders);
Assert.Equal("Sprache", definition.Name);
Assert.Equal(LehrerApp.Templating.PlaceholderType.Text, definition.Type);
Assert.True(definition.Required);
viewModel.RemoveSelectedPlaceholder();
Assert.Empty(viewModel.Placeholders);
Assert.Null(viewModel.SelectedPlaceholder);
}
[Fact]
public void DoppeltePlatzhalternamen_WerdenVerstaendlichAbgelehnt()
{
var viewModel = new DesignerViewModel();
viewModel.Placeholders.Clear();
viewModel.Placeholders.Add(new("Name", LehrerApp.Templating.PlaceholderType.Text, false, "A"));
viewModel.Placeholders.Add(new("Name", LehrerApp.Templating.PlaceholderType.Text, false, "B"));
var exception = Assert.Throws<InvalidDataException>(() => viewModel.BuildManifest());
Assert.Contains("mehrfach", exception.Message);
}
private static readonly byte[] OnePixelPng = Convert.FromBase64String(
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=");
}