Skip to content

Commit 0621e6e

Browse files
committed
test NotificationFeedMeta
1 parent deecbbd commit 0621e6e

File tree

6 files changed

+51
-3
lines changed

6 files changed

+51
-3
lines changed

packages/stream_feed/lib/src/core/models/index.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export 'following.dart';
1616
export 'foreign_id_time_pair.dart';
1717
export 'group.dart';
1818
export 'lookup_attribute.dart';
19+
export 'notification_feed_meta.dart';
1920
export 'open_graph_data.dart';
2021
export 'reaction.dart';
2122
export 'realtime_message.dart';
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
1+
import 'package:equatable/equatable.dart';
12
import 'package:json_annotation/json_annotation.dart';
23

34
part 'notification_feed_meta.g.dart';
45

5-
@JsonSerializable(createToJson: false)
6-
class NotificationFeedMeta {
7-
NotificationFeedMeta({
6+
@JsonSerializable(createToJson: true)
7+
class NotificationFeedMeta extends Equatable {
8+
const NotificationFeedMeta({
89
required this.unreadCount,
910
required this.unseenCount,
1011
});
1112

1213
factory NotificationFeedMeta.fromJson(Map json) =>
1314
_$NotificationFeedMetaFromJson(json);
1415

16+
Map<String, dynamic> toJson() => _$NotificationFeedMetaToJson(this);
17+
1518
@JsonKey(name: 'unread')
1619
final int unreadCount;
1720

1821
@JsonKey(name: 'unseen')
1922
final int unseenCount;
23+
24+
@override
25+
List<Object?> get props => [unreadCount, unseenCount];
2026
}

packages/stream_feed/lib/src/core/models/notification_feed_meta.g.dart

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"unread": 1,
3+
"unseen": 1
4+
}

packages/stream_feed/test/models_test.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:stream_feed/src/core/models/follow_stats.dart';
88
import 'package:stream_feed/src/core/models/followers.dart';
99
import 'package:stream_feed/src/core/models/following.dart';
1010
import 'package:stream_feed/src/core/models/group.dart';
11+
import 'package:stream_feed/src/core/models/notification_feed_meta.dart';
1112
import 'package:stream_feed/src/core/models/paginated_reactions.dart';
1213
import 'package:stream_feed/src/core/models/personalized_feed.dart';
1314
import 'package:stream_feed/src/core/models/thumbnail.dart';
@@ -427,6 +428,13 @@ void main() {
427428
expect(foreignIdTimePair, otherForeignIdTimePair);
428429
});
429430

431+
test('NotificationFeedMeta', () {
432+
final notificationFeedMeta =
433+
NotificationFeedMeta(unreadCount: 1, unseenCount: 1);
434+
expect(NotificationFeedMeta.fromJson({'unread': 1, 'unseen': 1}),
435+
notificationFeedMeta);
436+
});
437+
430438
group('NotificationGroup', () {
431439
final notificationGroup = NotificationGroup(
432440
id: 'test',

packages/stream_feed/test/notification_client_test.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,28 @@ void main() {
8686
verify(() => api.getActivities(token, feedId, options)).called(1);
8787
});
8888

89+
test('getUnreadUnseenCounts', () async {
90+
final marker = ActivityMarker().allSeen();
91+
final filter =
92+
Filter().idGreaterThan('e561de8f-00f1-11e4-b400-0cc47a024be0');
93+
final options = {
94+
'limit': 0,
95+
...filter.params,
96+
...marker.params,
97+
};
98+
final rawData = jsonFixture('meta.json');
99+
when(() => api.getActivities(token, feedId, options))
100+
.thenAnswer((_) async => Response(
101+
data: rawData,
102+
requestOptions: RequestOptions(
103+
path: '',
104+
),
105+
statusCode: 200));
106+
107+
await client.getUnreadUnseenCounts(filter: filter, marker: marker);
108+
109+
verify(() => api.getActivities(token, feedId, options)).called(1);
110+
});
89111
test('getEnrichedActivities', () async {
90112
const limit = 5;
91113
const offset = 0;

0 commit comments

Comments
 (0)