Skip to content

Commit f5ae50e

Browse files
committed
test: add tests for PollDeletedFeedEvent and PollUpdatedFeedEvent
1 parent 413635b commit f5ae50e

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

packages/stream_feeds/test/state/feed_test.dart

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3092,6 +3092,85 @@ void main() {
30923092
},
30933093
);
30943094

3095+
feedTest(
3096+
'PollDeletedFeedEvent - should remove poll from activity',
3097+
build: (client) => client.feedFromId(feedId),
3098+
setUp: (tester) => tester.getOrCreate(
3099+
modifyResponse: (it) => it.copyWith(
3100+
activities: [
3101+
createDefaultActivityResponse(
3102+
id: 'activity-1',
3103+
feeds: [feedId.rawValue],
3104+
poll: createDefaultPollResponse(id: pollId),
3105+
),
3106+
],
3107+
),
3108+
),
3109+
body: (tester) async {
3110+
// Initial state - activity has poll
3111+
final initialActivity = tester.feedState.activities.first;
3112+
expect(initialActivity.poll, isNotNull);
3113+
expect(initialActivity.poll!.id, pollId);
3114+
3115+
// Emit PollDeletedFeedEvent
3116+
await tester.emitEvent(
3117+
PollDeletedFeedEvent(
3118+
type: EventTypes.pollDeleted,
3119+
createdAt: DateTime.timestamp(),
3120+
custom: const {},
3121+
fid: feedId.rawValue,
3122+
poll: createDefaultPollResponse(id: pollId),
3123+
),
3124+
);
3125+
3126+
// Verify poll was removed
3127+
final updatedActivity = tester.feedState.activities.first;
3128+
expect(updatedActivity.poll, isNull);
3129+
},
3130+
);
3131+
3132+
feedTest(
3133+
'PollUpdatedFeedEvent - should update poll in activity',
3134+
build: (client) => client.feedFromId(feedId),
3135+
setUp: (tester) => tester.getOrCreate(
3136+
modifyResponse: (it) => it.copyWith(
3137+
activities: [
3138+
createDefaultActivityResponse(
3139+
id: 'activity-1',
3140+
feeds: [feedId.rawValue],
3141+
poll: createDefaultPollResponse(
3142+
id: pollId,
3143+
).copyWith(name: 'Original poll name'),
3144+
),
3145+
],
3146+
),
3147+
),
3148+
body: (tester) async {
3149+
// Initial state - poll has original name
3150+
final initialActivity = tester.feedState.activities.first;
3151+
expect(initialActivity.poll, isNotNull);
3152+
expect(initialActivity.poll!.name, 'Original poll name');
3153+
3154+
// Emit PollUpdatedFeedEvent
3155+
await tester.emitEvent(
3156+
PollUpdatedFeedEvent(
3157+
type: EventTypes.pollUpdated,
3158+
createdAt: DateTime.timestamp(),
3159+
custom: const {},
3160+
fid: feedId.rawValue,
3161+
poll: createDefaultPollResponse(
3162+
id: pollId,
3163+
).copyWith(name: 'Updated poll name'),
3164+
),
3165+
);
3166+
3167+
// Verify poll was updated
3168+
final updatedActivity = tester.feedState.activities.first;
3169+
expect(updatedActivity.poll, isNotNull);
3170+
expect(updatedActivity.poll!.name, 'Updated poll name');
3171+
},
3172+
);
3173+
30953174
feedTest(
30963175
'PollClosedFeedEvent - should mark poll as closed',
30973176
build: (client) => client.feedFromId(feedId),

0 commit comments

Comments
 (0)