feat(app): the topics' foot the same with or without topics

Without sub-studysets, the side bar and the drawer showed New
sub-studyset in the invitation at the top and the bibliography alone at
the foot. Now New sub-studyset always sits at the foot's start, across
from the bibliography, once the topics are read (not while reordering);
the invitation keeps its words, without a button of its own (decided
2026-10-08).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-08 22:30:50 +02:00
commit b4fe6814ef
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -442,6 +442,28 @@ void main() {
expect(bibliography.right, moreOrLessEquals(rail.right - 16));
});
testWidgets('without topics, the foot is the same: one New sub-studyset '
'at its start, the bibliography at its end', (tester) async {
stored('japanese', 'Japanese');
await showApp(tester, location: RoutePaths.studyset('japanese'));
await tester.pumpAndSettle();
expect(find.text('No sub-studysets yet.'), findsOneWidget);
expect(find.text('New sub-studyset'), findsOneWidget);
final create = tester.getRect(
find.ancestor(
of: find.text('New sub-studyset'),
matching: find.byWidgetPredicate((widget) => widget is FilledButton),
),
);
final bibliography = tester.getRect(find.byTooltip('Bibliography'));
expect(bibliography.center.dy, moreOrLessEquals(create.center.dy));
expect(
create.top,
greaterThan(tester.getRect(find.text('No sub-studysets yet.')).bottom),
);
});
testWidgets('on a phone, the bibliography shares the foot of the topics '
'with New sub-studyset: that at the start, the bibliography at the '
'end', (tester) async {