@@ -3,49 +3,32 @@ import 'package:test/test.dart';
33
44void main () {
55 group ('UserContentPreferences' , () {
6- // Get fixtures to build a populated test subject
7- final mockCountry = countriesFixturesData.first;
8- final mockSource = sourcesFixturesData.first;
9- final mockTopic = topicsFixturesData.first;
10- final mockHeadline = headlinesFixturesData.first;
11- final mockSavedFilter = savedFiltersFixturesData.first;
12-
13- // Use the base fixture and copyWith to create a populated version for tests
14- final userContentPreferencesFixture = userContentPreferencesFixturesData
15- .first
16- .copyWith (
17- followedCountries: [mockCountry],
18- followedSources: [mockSource],
19- followedTopics: [mockTopic],
20- savedHeadlines: [],
21- savedFilters: [mockSavedFilter],
22- );
6+ // Use the first item from the fixtures as the test subject.
7+ // This ensures tests are based on the canonical fixture data.
8+ final userContentPreferencesFixture =
9+ userContentPreferencesFixturesData.first;
2310
2411 group ('constructor' , () {
2512 test ('returns correct instance' , () {
2613 expect (userContentPreferencesFixture, isA <UserContentPreferences >());
2714 });
2815
29- test ('returns correct instance with empty lists from fixture' , () {
30- // The base fixture should have empty lists
31- final defaultPreferences = userContentPreferencesFixturesData.first;
32- expect (defaultPreferences .followedCountries, isEmpty);
33- expect (defaultPreferences .followedSources, isEmpty );
34- expect (defaultPreferences .followedTopics, isEmpty );
35- expect (defaultPreferences .savedHeadlines, isEmpty );
36- expect (defaultPreferences .savedFilters, isEmpty );
16+ test ('returns correct instance with populated lists from fixture' , () {
17+ // The base fixture should now have populated lists
18+ final preferences = userContentPreferencesFixturesData.first;
19+ expect (preferences .followedCountries, isEmpty); // This list is empty
20+ expect (preferences .followedSources, isNotEmpty );
21+ expect (preferences .followedTopics, isNotEmpty );
22+ expect (preferences .savedHeadlines, isNotEmpty );
23+ expect (preferences .savedFilters, isNotEmpty );
3724 });
3825 });
3926
4027 group ('fromJson/toJson' , () {
4128 test ('round trip with all fields populated' , () {
42- final preferencesWithSaved = userContentPreferencesFixture.copyWith (
43- savedHeadlines: [mockHeadline],
44- savedFilters: [mockSavedFilter],
45- );
46- final json = preferencesWithSaved.toJson ();
29+ final json = userContentPreferencesFixture.toJson ();
4730 final result = UserContentPreferences .fromJson (json);
48- expect (result, equals (preferencesWithSaved ));
31+ expect (result, equals (userContentPreferencesFixture ));
4932 });
5033
5134 test ('round trip with empty lists' , () {
@@ -59,30 +42,22 @@ void main() {
5942 group ('copyWith' , () {
6043 test ('returns a new instance with updated fields' , () {
6144 final newCountry = countriesFixturesData[1 ];
62- final newHeadline = headlinesFixturesData[1 ];
63- final newSavedFilter = savedFiltersFixturesData[1 ];
6445
6546 final updatedPreferences = userContentPreferencesFixture.copyWith (
6647 followedCountries: [newCountry],
67- savedFilters: [mockSavedFilter, newSavedFilter],
68- savedHeadlines: [mockHeadline, newHeadline],
6948 );
7049
7150 expect (updatedPreferences.id, userContentPreferencesFixture.id);
7251 expect (updatedPreferences.followedCountries, [newCountry]);
52+ // Verify other fields remain unchanged
7353 expect (
7454 updatedPreferences.followedSources,
7555 userContentPreferencesFixture.followedSources,
7656 );
7757 expect (
78- updatedPreferences.followedTopics ,
79- userContentPreferencesFixture.followedTopics ,
58+ updatedPreferences.savedFilters ,
59+ userContentPreferencesFixture.savedFilters ,
8060 );
81- expect (updatedPreferences.savedFilters, [
82- mockSavedFilter,
83- newSavedFilter,
84- ]);
85- expect (updatedPreferences.savedHeadlines, [mockHeadline, newHeadline]);
8661 });
8762
8863 test (
0 commit comments