From 03de2998ff681a5406d635539848c7669c74bfa6 Mon Sep 17 00:00:00 2001 From: Bretton <36870434+BrettM86@users.noreply.github.com> Date: Thu, 16 Jul 2026 00:09:56 -0700 Subject: [PATCH] test(feed): provide subscription and block providers in feed screen tests FeedScreen widget tests broke when PostCardActions gained Consumer3 (ff070a1) - 8 of 17 tests failed with ProviderNotFoundException. Register both providers in the test harness, using a no-op FakeCommunitySubscriptionProvider so no network fetch (and no pending timers) fire when auth state flips. Co-Authored-By: Claude Fable 5 --- test/widgets/feed_screen_test.dart | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/widgets/feed_screen_test.dart b/test/widgets/feed_screen_test.dart index afb8a4c..17864b6 100644 --- a/test/widgets/feed_screen_test.dart +++ b/test/widgets/feed_screen_test.dart @@ -1,9 +1,12 @@ import 'package:coves_flutter/models/feed_state.dart'; import 'package:coves_flutter/models/post.dart'; import 'package:coves_flutter/providers/auth_provider.dart'; +import 'package:coves_flutter/providers/block_provider.dart'; +import 'package:coves_flutter/providers/community_subscription_provider.dart'; import 'package:coves_flutter/providers/multi_feed_provider.dart'; import 'package:coves_flutter/providers/vote_provider.dart'; import 'package:coves_flutter/screens/home/feed_screen.dart'; +import 'package:coves_flutter/services/coves_api_service.dart'; import 'package:coves_flutter/services/vote_service.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -53,6 +56,16 @@ class FakeVoteProvider extends VoteProvider { } } +// Fake CommunitySubscriptionProvider that never touches the network +class FakeCommunitySubscriptionProvider extends CommunitySubscriptionProvider { + FakeCommunitySubscriptionProvider({required super.authProvider}); + + @override + Future loadSubscribedCommunities() async { + // No-op for testing - avoids network calls and pending timers + } +} + // Fake MultiFeedProvider for testing class FakeMultiFeedProvider extends MultiFeedProvider { FakeMultiFeedProvider() : super(FakeAuthProvider()); @@ -127,11 +140,20 @@ void main() { late FakeAuthProvider fakeAuthProvider; late FakeMultiFeedProvider fakeFeedProvider; late FakeVoteProvider fakeVoteProvider; + late CommunitySubscriptionProvider subscriptionProvider; + late BlockProvider blockProvider; setUp(() { fakeAuthProvider = FakeAuthProvider(); fakeFeedProvider = FakeMultiFeedProvider(); fakeVoteProvider = FakeVoteProvider(); + subscriptionProvider = FakeCommunitySubscriptionProvider( + authProvider: fakeAuthProvider, + ); + blockProvider = BlockProvider( + apiService: CovesApiService(), + authProvider: fakeAuthProvider, + ); }); Widget createTestWidget() { @@ -142,6 +164,10 @@ void main() { value: fakeFeedProvider, ), ChangeNotifierProvider.value(value: fakeVoteProvider), + ChangeNotifierProvider.value( + value: subscriptionProvider, + ), + ChangeNotifierProvider.value(value: blockProvider), ], child: const MaterialApp(home: FeedScreen()), ); -- 2.51.2