halkyon/packages/halkyon_ui/test/widget/help_button_test.dart
Tizian 「ティツィアーン」 30dd8c96eb
feat(ui): the question mark's explanation offers a link beside OK
HelpButton takes an action, a label and what it does, shown beside OK where
there is more to read elsewhere, as what a map's source keeps (Train's ADR
0030, D63).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-04 09:32:02 +01:00

47 lines
1.5 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:halkyon_ui/halkyon_ui.dart';
import 'package:material_ui/material_ui.dart';
import '../support/test_app.dart';
void main() {
testWidgets('the explanation stays hidden until the question mark is '
'tapped, then shows under its title and closes again', (tester) async {
await tester.pumpWidget(
testApp(
const Scaffold(
body: HelpButton('How sources are cited.', title: 'Citation style'),
),
),
);
expect(find.text('How sources are cited.'), findsNothing);
expect(find.byTooltip("What's this?"), findsOneWidget);
await tester.tap(find.byType(HelpButton));
await tester.pumpAndSettle();
expect(find.text('Citation style'), findsOneWidget);
expect(find.text('How sources are cited.'), findsOneWidget);
await tester.tap(find.text('OK'));
await tester.pumpAndSettle();
expect(find.text('How sources are cited.'), findsNothing);
});
testWidgets('an action offered stands beside OK', (tester) async {
var read = false;
await tester.pumpWidget(
testApp(
Scaffold(
body: HelpButton(
'Map by OpenFreeMap.',
action: (label: 'What it keeps', onPressed: () => read = true),
),
),
),
);
await tester.tap(find.byType(HelpButton));
await tester.pumpAndSettle();
await tester.tap(find.text('What it keeps'));
expect(read, isTrue);
expect(find.text('OK'), findsOneWidget);
});
}