Skip to content

Commit c35d3de

Browse files
committed
test(user_preferences): update UserContentPreferences tests
- Simplify test setup by using fixture data directly - Update tests to verify populated lists in fixture data - Remove redundant tests and simplify existing ones - Adjust assertions to match new fixture data structure
1 parent 0dc99f8 commit c35d3de

File tree

1 file changed

+17
-42
lines changed

1 file changed

+17
-42
lines changed

test/src/models/user_preferences/user_content_preferences_test.dart

Lines changed: 17 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,32 @@ import 'package:test/test.dart';
33

44
void 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 = userContentPreferencesFixturesData.first.savedFilters.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 = userContentPreferencesFixturesData.first.savedFilters.last;
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

Comments
 (0)