@@ -513,5 +513,72 @@ void main() {
513513 expect (feed.state.aggregatedActivities.length, 2 );
514514 expect (feed.state.aggregatedActivities.last.activities.length, 1 );
515515 });
516+
517+ test ('StoriesFeedUpdatedEvent should update aggregated activities' ,
518+ () async {
519+ const feedId = FeedId (group: 'stories' , id: 'target' );
520+
521+ final activity1 = createDefaultActivityResponse ()
522+ .activity
523+ .copyWith (id: 'storyActivityId1' );
524+
525+ final activity2 = createDefaultActivityResponse ()
526+ .activity
527+ .copyWith (id: 'storyActivityId2' );
528+
529+ when (
530+ () => feedsApi.getOrCreateFeed (
531+ feedGroupId: feedId.group,
532+ feedId: feedId.id,
533+ getOrCreateFeedRequest: any (named: 'getOrCreateFeedRequest' ),
534+ ),
535+ ).thenAnswer (
536+ (_) async => Result .success (
537+ createDefaultGetOrCreateFeedResponse (
538+ aggregatedActivities: [
539+ createDefaultAggregatedActivityResponse (
540+ group: 'group1' ,
541+ activities: [activity1],
542+ ),
543+ ],
544+ ),
545+ ),
546+ );
547+
548+ final feed = client.feedFromId (feedId);
549+
550+ final result = await feed.getOrCreate ();
551+ result.getOrThrow ();
552+ expect (feed.state.aggregatedActivities.length, 1 );
553+ expect (feed.state.aggregatedActivities.first.activities.length, 1 );
554+
555+ feed.notifier.stream.listen (
556+ expectAsync1 (
557+ (event) {
558+ expect (event, isA <FeedState >());
559+
560+ expect (event.aggregatedActivities.length, 1 );
561+ expect (event.aggregatedActivities.first.activities.length, 2 );
562+ },
563+ ),
564+ );
565+
566+ wsStreamController.add (
567+ jsonEncode (
568+ StoriesFeedUpdatedEvent (
569+ type: EventTypes .storiesFeedUpdated,
570+ createdAt: DateTime .now (),
571+ custom: const {},
572+ fid: feedId.toString (),
573+ aggregatedActivities: [
574+ createDefaultAggregatedActivityResponse (
575+ group: 'group1' ,
576+ activities: [activity1, activity2],
577+ ),
578+ ],
579+ ),
580+ ),
581+ );
582+ });
516583 });
517584}
0 commit comments