feat(app): the home dashboard: streak, goal, week, activity

Home opens on a study dashboard. The streak's flame sits in the app bar
and opens a sheet of how it stands this week. Below: the study goal (a
ring of the day's or week's progress, set and removed in its sheet), the
week (each day studied, rested, missed or to come with the cards falling
due; days to go back and on; today or a day to come made a rest day),
and a year of activity as a heatmap, its weekdays staying in view while
the weeks scroll. A long press arranges the dashboard: drag a widget
elsewhere, hide or show it; the arrangement is synced.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-01 22:13:34 +02:00
commit 111532435f
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1,20 +1,17 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:halkyon_learn_flutter/src/feature/home/widget/home_screen.dart';
import 'support/pump_app.dart';
import 'support/test_dependencies.dart';
void main() {
testWidgets('signs in and opens at home, which leads to the library', (
tester,
) async {
testWidgets('signs in and opens at home, the dashboard, beside the '
'library', (tester) async {
await pumpApp(tester, testDependencies());
expect(
find.text('Your studysets and cards are in your library.'),
findsOneWidget,
);
expect(find.byType(HomeScreen), findsOneWidget);
expect(find.text('Set a study goal'), findsOneWidget);
await tester.tap(find.text('Open library'));
await tester.pumpAndSettle();
await openTab(tester, 'Library');
expect(find.text('No studysets yet'), findsOneWidget);
});