fix: issue-372, issue-227, issue-406

This commit is contained in:
misha
2026-09-02 09:32:14 +03:00
parent 10af279d87
commit c6ea1d414d
34 changed files with 1623 additions and 387 deletions

View File

@@ -1,4 +1,3 @@
import 'package:eatvio_app/core/theme/theme_helper.dart';
import 'package:eatvio_app/features/chat/presentation/widgets/about_order_button.dart';
import 'package:eatvio_app/features/chat/presentation/widgets/message_action_bottom_sheet.dart';
@@ -8,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:go_router/go_router.dart';
class _FakeAssetBundle extends CachingAssetBundle {
_FakeAssetBundle(this.assets);
@@ -66,7 +66,9 @@ void main() {
testWidgets('AboutOrderButton renders and taps', (tester) async {
var tapped = false;
await tester.pumpWidget(wrap(AboutOrderButton(onTap: () => tapped = true)));
await tester.pumpWidget(
wrap(AboutOrderButton(onTap: () => tapped = true)),
);
await tester.pump();
expect(find.byType(AboutOrderButton), findsOneWidget);
await tester.tap(find.byType(AboutOrderButton));
@@ -75,24 +77,44 @@ void main() {
});
testWidgets('MessageActionsBottomSheet renders', (tester) async {
await tester.pumpWidget(wrap(MessageActionsBottomSheet(resend: () {}, delete: () {})));
await tester.pumpWidget(
wrap(MessageActionsBottomSheet(resend: () {}, delete: () {})),
);
await tester.pump();
expect(find.byType(MessageActionsBottomSheet), findsOneWidget);
expect(find.text(S.current.resend), findsOneWidget);
expect(find.text(S.current.delete), findsOneWidget);
});
testWidgets('NotificationBanner renders for multiple banner types', (tester) async {
testWidgets('NotificationBanner renders for multiple banner types', (
tester,
) async {
await tester.pumpWidget(
wrap(
const SingleChildScrollView(
child: Column(
children: [
NotificationBanner(bannerType: BannerType.date, hasPersonalDiet: false),
NotificationBanner(
bannerType: BannerType.date,
hasPersonalDiet: false,
),
NotificationBanner(bannerType: BannerType.card),
NotificationBanner(bannerType: BannerType.collectCharge, planName: 'Plan', planPrice: 100, chosenPlanId: 1),
NotificationBanner(bannerType: BannerType.finishPlan, planName: 'Plan', planPrice: 100, chosenPlanId: 1),
NotificationBanner(bannerType: BannerType.setPersonalDiet, hasPersonalDiet: true),
NotificationBanner(
bannerType: BannerType.collectCharge,
planName: 'Plan',
planPrice: 100,
chosenPlanId: 1,
),
NotificationBanner(
bannerType: BannerType.finishPlan,
planName: 'Plan',
planPrice: 100,
chosenPlanId: 1,
),
NotificationBanner(
bannerType: BannerType.setPersonalDiet,
hasPersonalDiet: true,
),
],
),
),
@@ -101,5 +123,54 @@ void main() {
await tester.pump();
expect(find.byType(NotificationBanner), findsWidgets);
});
testWidgets('collect charge banner opens card settings with chosenPlanId', (
tester,
) async {
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => const Scaffold(
body: NotificationBanner(
bannerType: BannerType.collectCharge,
planName: 'Plan',
planPrice: 100,
chosenPlanId: 17,
),
),
),
GoRoute(
path: '/card-settings-screen',
builder: (context, state) =>
Scaffold(body: Text('chosenPlanId:${state.extra}')),
),
],
);
await tester.pumpWidget(
DefaultAssetBundle(
bundle: bundle,
child: MaterialApp.router(
theme: ThemeHelper().themeData(),
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: const [Locale('ru')],
routerConfig: router,
),
),
);
await tester.pump();
expect(find.text('Получить выплату'), findsOneWidget);
await tester.tap(find.text('Получить выплату'));
await tester.pumpAndSettle();
expect(find.text('chosenPlanId:17'), findsOneWidget);
});
});
}