Add soft delete + trash, keyboard-first web overhaul, move chapter tags to bottom
Adds SoftDelete/Trash across characters, chapters, locations, beats with a purge schedule and Trash page. Reworks the web client for keyboard-driven navigation (focus helpers, help overlay, keyboard.md doc). Moves the ChapterPage tag editor to the bottom of the page to match CharacterDetailPage.
This commit is contained in:
@@ -152,7 +152,7 @@ public class CharacterArcTests : ServiceTestFixture
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Deleting_a_chapter_unpins_an_arc_stage_rather_than_deleting_it()
|
||||
public async Task Trashing_a_chapter_hides_it_from_an_arc_stage_without_unpinning_it()
|
||||
{
|
||||
var chapter = await Chapters.CreateAsync(_novelId, new CreateChapterRequest("Landfall"));
|
||||
var stage = await Arcs.CreateAsync(
|
||||
@@ -161,11 +161,14 @@ public class CharacterArcTests : ServiceTestFixture
|
||||
await Chapters.DeleteAsync(chapter.Id);
|
||||
|
||||
var survivor = (await Arcs.GetAsync(stage.Id))!;
|
||||
var response = survivor.ToResponse();
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(survivor.ChapterId, Is.Null);
|
||||
Assert.That(survivor.Title, Is.EqualTo("The map is wrong"));
|
||||
Assert.That(survivor.ChapterId, Is.EqualTo(chapter.Id), "the pin survives so restoring the chapter restores the link");
|
||||
Assert.That(response.ChapterNumber, Is.Null);
|
||||
Assert.That(response.ChapterTitle, Is.Null);
|
||||
Assert.That(response.Title, Is.EqualTo("The map is wrong"));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user