Skip to content

Commit d442328

Browse files
chrisbobbegnprice
authored andcommitted
compose_box test [nfc]: Factor some tests out of a loop structure
1 parent 5a008a0 commit d442328

File tree

1 file changed

+36
-18
lines changed

1 file changed

+36
-18
lines changed

test/widgets/compose_box_test.dart

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1411,31 +1411,49 @@ void main() {
14111411
void checkComposeBox({required bool isShown}) => checkComposeBoxIsShown(isShown,
14121412
bannerLabel: zulipLocalizations.errorBannerCannotPostInChannelLabel);
14131413

1414-
final narrowTestCases = [
1415-
('channel', const ChannelNarrow(1)),
1416-
('topic', eg.topicNarrow(1, 'topic')),
1417-
];
1418-
1419-
for (final (String narrowType, Narrow narrow) in narrowTestCases) {
1420-
testWidgets('compose box is shown in $narrowType narrow', (tester) async {
1414+
const channelNarrow = ChannelNarrow(1);
1415+
final topicNarrow = eg.topicNarrow(1, 'topic');
1416+
1417+
void testComposeBoxShown({
1418+
required Narrow narrow,
1419+
required bool canSend,
1420+
required bool expected,
1421+
}) {
1422+
final description = [
1423+
narrow.toString(),
1424+
'can send?: $canSend',
1425+
].join(', ');
1426+
testWidgets(description, (tester) async {
14211427
await prepareComposeBox(tester,
14221428
narrow: narrow,
1423-
selfUser: eg.user(role: UserRole.administrator),
1429+
selfUser: eg.user(
1430+
role: canSend ? UserRole.administrator : UserRole.member),
14241431
subscriptions: [eg.subscription(eg.stream(streamId: 1,
14251432
channelPostPolicy: ChannelPostPolicy.moderators))]);
1426-
checkComposeBox(isShown: true);
1427-
});
1428-
1429-
testWidgets('error banner is shown in $narrowType narrow', (tester) async {
1430-
await prepareComposeBox(tester,
1431-
narrow: narrow,
1432-
selfUser: eg.user(role: UserRole.moderator),
1433-
subscriptions: [eg.subscription(eg.stream(streamId: 1,
1434-
channelPostPolicy: ChannelPostPolicy.administrators))]);
1435-
checkComposeBox(isShown: false);
1433+
checkComposeBox(isShown: expected);
14361434
});
14371435
}
14381436

1437+
testComposeBoxShown(
1438+
narrow: channelNarrow,
1439+
canSend: true,
1440+
expected: true);
1441+
1442+
testComposeBoxShown(
1443+
narrow: topicNarrow,
1444+
canSend: true,
1445+
expected: true);
1446+
1447+
testComposeBoxShown(
1448+
narrow: channelNarrow,
1449+
canSend: false,
1450+
expected: false);
1451+
1452+
testComposeBoxShown(
1453+
narrow: topicNarrow,
1454+
canSend: false,
1455+
expected: false);
1456+
14391457
testWidgets('user loses privilege -> compose box is replaced with the banner', (tester) async {
14401458
final selfUser = eg.user(role: UserRole.administrator);
14411459
await prepareComposeBox(tester,

0 commit comments

Comments
 (0)