Skip to content

Commit e7e2ab5

Browse files
committed
Added unit tests for resolvers
1 parent 60da91f commit e7e2ab5

File tree

2 files changed

+128
-0
lines changed

2 files changed

+128
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// ignore_for_file: avoid_redundant_argument_values
2+
3+
import 'package:stream_feeds/src/resolvers/resolvers.dart';
4+
import 'package:stream_feeds/stream_feeds.dart';
5+
import 'package:test/test.dart';
6+
7+
void main() {
8+
group('pollAnswerCastedFeedEventResolver', () {
9+
test('resolves Answer when answer is true', () {
10+
final event = createPollVoteCastedFeedEvent(isAnswer: true);
11+
final resolvedEvent = pollAnswerCastedFeedEventResolver(event);
12+
expect(resolvedEvent, isA<PollAnswerCastedFeedEvent>());
13+
});
14+
15+
test('does not resolve Answer when answer is false', () {
16+
final event = createPollVoteCastedFeedEvent(isAnswer: false);
17+
final resolvedEvent = pollAnswerCastedFeedEventResolver(event);
18+
expect(resolvedEvent, isNull);
19+
});
20+
test('does not resolve Answer when answer is null', () {
21+
final event = createPollVoteCastedFeedEvent(isAnswer: null);
22+
final resolvedEvent = pollAnswerCastedFeedEventResolver(event);
23+
expect(resolvedEvent, isNull);
24+
});
25+
});
26+
}
27+
28+
PollVoteCastedFeedEvent createPollVoteCastedFeedEvent({bool? isAnswer}) {
29+
return PollVoteCastedFeedEvent(
30+
createdAt: DateTime.now(),
31+
custom: const {},
32+
fid: '1',
33+
poll: PollResponseData(
34+
createdAt: DateTime.now(),
35+
updatedAt: DateTime.now(),
36+
id: '1',
37+
allowAnswers: true,
38+
allowUserSuggestedOptions: true,
39+
answersCount: 1,
40+
createdById: '1',
41+
custom: const {},
42+
description: '1',
43+
enforceUniqueVote: true,
44+
latestAnswers: const [],
45+
latestVotesByOption: const {},
46+
maxVotesAllowed: 1,
47+
name: '1',
48+
options: const [],
49+
ownVotes: const [],
50+
voteCount: 1,
51+
voteCountsByOption: const {},
52+
votingVisibility: '1',
53+
),
54+
type: 'poll.vote.casted',
55+
pollVote: PollVoteResponseData(
56+
createdAt: DateTime.now(),
57+
updatedAt: DateTime.now(),
58+
id: '1',
59+
optionId: '1',
60+
pollId: '1',
61+
isAnswer: isAnswer,
62+
),
63+
);
64+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// ignore_for_file: avoid_redundant_argument_values
2+
3+
import 'package:stream_feeds/src/resolvers/resolvers.dart';
4+
import 'package:stream_feeds/stream_feeds.dart';
5+
import 'package:test/test.dart';
6+
7+
void main() {
8+
group('pollAnswerRemovedFeedEventResolver', () {
9+
test('resolves Answer when answer is true', () {
10+
final event = createPollVoteRemovedFeedEvent(isAnswer: true);
11+
final resolvedEvent = pollAnswerRemovedFeedEventResolver(event);
12+
expect(resolvedEvent, isA<PollAnswerRemovedFeedEvent>());
13+
});
14+
});
15+
16+
test('does not resolve Answer when answer is false', () {
17+
final event = createPollVoteRemovedFeedEvent(isAnswer: false);
18+
final resolvedEvent = pollAnswerRemovedFeedEventResolver(event);
19+
expect(resolvedEvent, isNull);
20+
});
21+
test('does not resolve Answer when answer is null', () {
22+
final event = createPollVoteRemovedFeedEvent(isAnswer: null);
23+
final resolvedEvent = pollAnswerRemovedFeedEventResolver(event);
24+
expect(resolvedEvent, isNull);
25+
});
26+
}
27+
28+
PollVoteRemovedFeedEvent createPollVoteRemovedFeedEvent({bool? isAnswer}) {
29+
return PollVoteRemovedFeedEvent(
30+
createdAt: DateTime.now(),
31+
custom: const {},
32+
fid: '1',
33+
poll: PollResponseData(
34+
createdAt: DateTime.now(),
35+
updatedAt: DateTime.now(),
36+
id: '1',
37+
allowAnswers: true,
38+
allowUserSuggestedOptions: true,
39+
answersCount: 1,
40+
createdById: '1',
41+
custom: const {},
42+
description: '1',
43+
enforceUniqueVote: true,
44+
latestAnswers: const [],
45+
latestVotesByOption: const {},
46+
maxVotesAllowed: 1,
47+
name: '1',
48+
options: const [],
49+
ownVotes: const [],
50+
voteCount: 1,
51+
voteCountsByOption: const {},
52+
votingVisibility: '1',
53+
),
54+
pollVote: PollVoteResponseData(
55+
createdAt: DateTime.now(),
56+
updatedAt: DateTime.now(),
57+
id: '1',
58+
optionId: '1',
59+
pollId: '1',
60+
isAnswer: isAnswer,
61+
),
62+
type: 'poll.vote.removed',
63+
);
64+
}

0 commit comments

Comments
 (0)