Skip to content

Commit a55ee82

Browse files
committed
message test: Vary user role in pre-291 selfCanDeleteMessage tests
And we'll use the new selfUserRole param for testing #1850, coming up.
1 parent da1d968 commit a55ee82

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

test/model/message_test.dart

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ void main() {
868868
group('selfCanDeleteMessage', () {
869869
/// Call the method, with setup from [params].
870870
Future<bool> evaluate(CanDeleteMessageParams params) async {
871-
final selfUser = eg.selfUser;
871+
final selfUser = eg.user(role: params.selfUserRole);
872872
final botUserOwnedBySelf = eg.user(isBot: true, botOwnerId: selfUser.userId);
873873
final botUserNotOwnedBySelf = eg.user(isBot: true, botOwnerId: eg.otherUser.userId);
874874

@@ -1127,14 +1127,35 @@ void main() {
11271127
// doesn't exist, so we follow realmDeleteOwnMessagePolicy instead,
11281128
// and we don't error.
11291129

1130-
test('allowed', () async {
1130+
test('allowed (permissive policy, low role)', () async {
11311131
check(await evaluate(
11321132
CanDeleteMessageParams.pre291(
11331133
senderConfig: CanDeleteMessageSenderConfig.self,
11341134
timeLimitConfig: CanDeleteMessageTimeLimitConfig.notLimited,
11351135
inRealmCanDeleteAnyMessageGroup: false,
11361136
isChannelArchived: false,
11371137
realmDeleteOwnMessagePolicy: RealmDeleteOwnMessagePolicy.everyone,
1138+
selfUserRole: UserRole.member,
1139+
)))
1140+
..equals(await evaluate(
1141+
CanDeleteMessageParams.pre407(
1142+
senderConfig: CanDeleteMessageSenderConfig.self,
1143+
timeLimitConfig: CanDeleteMessageTimeLimitConfig.notLimited,
1144+
inRealmCanDeleteAnyMessageGroup: false,
1145+
inRealmCanDeleteOwnMessageGroup: true,
1146+
isChannelArchived: false)))
1147+
..isTrue();
1148+
});
1149+
1150+
test('allowed (strict policy, high role)', () async {
1151+
check(await evaluate(
1152+
CanDeleteMessageParams.pre291(
1153+
senderConfig: CanDeleteMessageSenderConfig.self,
1154+
timeLimitConfig: CanDeleteMessageTimeLimitConfig.notLimited,
1155+
inRealmCanDeleteAnyMessageGroup: false,
1156+
isChannelArchived: false,
1157+
realmDeleteOwnMessagePolicy: RealmDeleteOwnMessagePolicy.admins,
1158+
selfUserRole: UserRole.administrator,
11381159
)))
11391160
..equals(await evaluate(
11401161
CanDeleteMessageParams.pre407(
@@ -1154,6 +1175,7 @@ void main() {
11541175
inRealmCanDeleteAnyMessageGroup: false,
11551176
isChannelArchived: false,
11561177
realmDeleteOwnMessagePolicy: RealmDeleteOwnMessagePolicy.admins,
1178+
selfUserRole: UserRole.moderator,
11571179
)))..equals(await evaluate(
11581180
CanDeleteMessageParams.pre407(
11591181
senderConfig: CanDeleteMessageSenderConfig.self,
@@ -1177,13 +1199,15 @@ void main() {
11771199
timeLimitConfig: CanDeleteMessageTimeLimitConfig.notLimited,
11781200
isChannelArchived: false,
11791201
realmDeleteOwnMessagePolicy: RealmDeleteOwnMessagePolicy.everyone,
1202+
selfUserRole: UserRole.member,
11801203
)))..equals(await evaluate(
11811204
CanDeleteMessageParams.pre291(
11821205
senderConfig: CanDeleteMessageSenderConfig.otherHuman,
11831206
timeLimitConfig: CanDeleteMessageTimeLimitConfig.notLimited,
11841207
inRealmCanDeleteAnyMessageGroup: false,
11851208
isChannelArchived: false,
1186-
realmDeleteOwnMessagePolicy: RealmDeleteOwnMessagePolicy.everyone)))
1209+
realmDeleteOwnMessagePolicy: RealmDeleteOwnMessagePolicy.everyone,
1210+
selfUserRole: UserRole.member)))
11871211
..isFalse();
11881212
});
11891213
});
@@ -2006,6 +2030,7 @@ class CanDeleteMessageParams {
20062030
final bool? inChannelCanDeleteAnyMessageGroup;
20072031
final bool? inChannelCanDeleteOwnMessageGroup;
20082032
final RealmDeleteOwnMessagePolicy? realmDeleteOwnMessagePolicy;
2033+
final UserRole? selfUserRole;
20092034

20102035
CanDeleteMessageParams._({
20112036
required this.senderConfig,
@@ -2016,6 +2041,7 @@ class CanDeleteMessageParams {
20162041
required this.inChannelCanDeleteAnyMessageGroup,
20172042
required this.inChannelCanDeleteOwnMessageGroup,
20182043
required this.realmDeleteOwnMessagePolicy,
2044+
required this.selfUserRole,
20192045
});
20202046

20212047
CanDeleteMessageParams.modern({
@@ -2026,7 +2052,9 @@ class CanDeleteMessageParams {
20262052
required this.isChannelArchived,
20272053
required this.inChannelCanDeleteAnyMessageGroup,
20282054
required this.inChannelCanDeleteOwnMessageGroup,
2029-
}) : realmDeleteOwnMessagePolicy = null;
2055+
}) :
2056+
realmDeleteOwnMessagePolicy = null,
2057+
selfUserRole = null;
20302058

20312059
factory CanDeleteMessageParams.restrictiveForChannelMessageExcept({
20322060
CanDeleteMessageSenderConfig? senderConfig,
@@ -2110,6 +2138,7 @@ class CanDeleteMessageParams {
21102138
inChannelCanDeleteAnyMessageGroup: null,
21112139
inChannelCanDeleteOwnMessageGroup: null,
21122140
realmDeleteOwnMessagePolicy: null,
2141+
selfUserRole: null,
21132142
);
21142143

21152144
// TODO(server-10) delete
@@ -2119,6 +2148,7 @@ class CanDeleteMessageParams {
21192148
required bool inRealmCanDeleteAnyMessageGroup,
21202149
required bool? isChannelArchived,
21212150
required RealmDeleteOwnMessagePolicy realmDeleteOwnMessagePolicy,
2151+
required UserRole selfUserRole,
21222152
}) => CanDeleteMessageParams._(
21232153
senderConfig: senderConfig,
21242154
timeLimitConfig: timeLimitConfig,
@@ -2128,6 +2158,7 @@ class CanDeleteMessageParams {
21282158
inChannelCanDeleteAnyMessageGroup: null,
21292159
inChannelCanDeleteOwnMessageGroup: null,
21302160
realmDeleteOwnMessagePolicy: realmDeleteOwnMessagePolicy,
2161+
selfUserRole: selfUserRole,
21312162
);
21322163

21332164
// TODO(server-10) delete
@@ -2136,6 +2167,7 @@ class CanDeleteMessageParams {
21362167
required CanDeleteMessageTimeLimitConfig timeLimitConfig,
21372168
required bool? isChannelArchived,
21382169
required RealmDeleteOwnMessagePolicy realmDeleteOwnMessagePolicy,
2170+
required UserRole selfUserRole,
21392171
}) => CanDeleteMessageParams._(
21402172
senderConfig: senderConfig,
21412173
timeLimitConfig: timeLimitConfig,
@@ -2145,6 +2177,7 @@ class CanDeleteMessageParams {
21452177
inChannelCanDeleteAnyMessageGroup: null,
21462178
inChannelCanDeleteOwnMessageGroup: null,
21472179
realmDeleteOwnMessagePolicy: realmDeleteOwnMessagePolicy,
2180+
selfUserRole: selfUserRole,
21482181
);
21492182

21502183
String describe() {

0 commit comments

Comments
 (0)