Stage 1: project setup, Exercise Library, both Mode designs and the Mode switch
- Flutter Android app on CookIT's stack (provider, shared_preferences, gen-l10n) - tools/exercise-import turns free-exercise-db into 876 bundled Exercises with 1,746 WebP images (20 MB); stretching -> Stretching, rest -> Workout - ZenStyle tokens per Mode: calm rounded sage/teal with breath ripples vs. dark ember-to-red with floor-tape slashes; the theme morphs at each Mode's own pace - Remembered global Mode switch, Plans / Library / History tabs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5dfa995d55
commit
1289fadb98
1822 files changed
+2819
No files matched your search
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:zenxercise/src/design/zen_style.dart';
|
||||
import 'package:zenxercise/src/home/home_view.dart';
|
||||
import 'package:zenxercise/src/modes/mode.dart';
|
||||
|
||||
import '../support/test_app.dart';
|
||||
|
||||
void main() {
|
||||
ZenStyle styleOf(WidgetTester tester) => ZenStyle.of(tester.element(find.byType(HomeView)));
|
||||
|
||||
testWidgets('switching Mode changes design and Library together', (tester) async {
|
||||
final settings = await pumpApp(tester);
|
||||
await tester.tap(find.byTooltip('Library'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(styleOf(tester).mode, Mode.stretching);
|
||||
expect(find.text('2 stretches'), findsOneWidget);
|
||||
expect(find.text('Hamstring Stretch'), findsOneWidget);
|
||||
|
||||
await tester.tap(find.text('Workout'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
expect(settings.mode, Mode.workout);
|
||||
expect(styleOf(tester).mode, Mode.workout);
|
||||
expect(styleOf(tester).brightness, Brightness.dark);
|
||||
expect(find.text('1 exercise'), findsOneWidget);
|
||||
expect(find.text('Barbell Squat'), findsOneWidget);
|
||||
expect(find.text('Hamstring Stretch'), findsNothing);
|
||||
});
|
||||
|
||||
testWidgets('opens in the last-used Mode', (tester) async {
|
||||
await pumpApp(tester, prefs: {'mode': 'workout'});
|
||||
|
||||
expect(styleOf(tester).mode, Mode.workout);
|
||||
});
|
||||
|
||||
testWidgets('an empty Plans tab invites building a Plan from the library', (tester) async {
|
||||
await pumpApp(tester);
|
||||
|
||||
expect(find.text('No plans yet'), findsOneWidget);
|
||||
expect(find.textContaining('stretch routine'), findsOneWidget);
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user