diff --git a/web/src/pages/audiobooks/player/MiniBar.test.tsx b/web/src/pages/audiobooks/player/MiniBar.test.tsx
index d1ad39e1..db436a5a 100644
--- a/web/src/pages/audiobooks/player/MiniBar.test.tsx
+++ b/web/src/pages/audiobooks/player/MiniBar.test.tsx
@@ -43,4 +43,27 @@ describe("MiniBar", () => {
await userEvent.click(screen.getByRole("button", { name: /close player/i }));
expect(onClose).toHaveBeenCalled();
});
+
+ it("renders the current chapter title under the book title", () => {
+ render(
+ ,
+ );
+ expect(screen.getByText("The Astrophage")).toBeInTheDocument();
+ });
+
+ it("omits the chapter row when no current chapter is known", () => {
+ render();
+ expect(screen.queryByTestId("minibar-chapter-title")).not.toBeInTheDocument();
+ });
});
diff --git a/web/src/pages/audiobooks/player/MiniBar.tsx b/web/src/pages/audiobooks/player/MiniBar.tsx
index 707812b6..1bf645e4 100644
--- a/web/src/pages/audiobooks/player/MiniBar.tsx
+++ b/web/src/pages/audiobooks/player/MiniBar.tsx
@@ -38,6 +38,15 @@ export function MiniBar({ title, playback, onClose }: MiniBarProps) {
{title}
) : null}
+ {playback.currentChapter ? (
+
+ {playback.currentChapter.title}
+
+ ) : null}
{formatTime(playback.currentTime)}