80 lines
1.8 KiB
Dart
80 lines
1.8 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:marianum_mobile/api/marianumcloud/talk/chat/get_chat_response.dart';
|
|
import 'package:marianum_mobile/api/marianumcloud/talk/room/get_room_response.dart';
|
|
import 'package:marianum_mobile/api/marianumcloud/talk/room/notification_level.dart';
|
|
|
|
typedef Level = GetRoomResponseObjectParticipantNotificationLevel;
|
|
typedef RoomType = GetRoomResponseObjectConversationType;
|
|
|
|
GetRoomResponseObject _room(RoomType type, Level level) =>
|
|
GetRoomResponseObject(
|
|
1,
|
|
't',
|
|
type,
|
|
'n',
|
|
'd',
|
|
'',
|
|
3,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
's',
|
|
false,
|
|
false,
|
|
0,
|
|
false,
|
|
false,
|
|
true,
|
|
0,
|
|
false,
|
|
level,
|
|
0,
|
|
false,
|
|
false,
|
|
0,
|
|
0,
|
|
GetChatResponseObject(
|
|
1,
|
|
't',
|
|
GetRoomResponseObjectMessageActorType.user,
|
|
'a',
|
|
'A',
|
|
0,
|
|
'',
|
|
GetRoomResponseObjectMessageType.comment,
|
|
true,
|
|
'r',
|
|
'm',
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
false,
|
|
),
|
|
null,
|
|
null,
|
|
null,
|
|
);
|
|
|
|
void main() {
|
|
test('Standard wird bei 1:1-Chats zu „Alle Nachrichten"', () {
|
|
final room = _room(RoomType.oneToOne, Level.defaultLevel);
|
|
expect(room.effectiveNotificationLevel, Level.alwaysNotify);
|
|
expect(room.isMuted, isFalse);
|
|
});
|
|
|
|
test('Standard wird bei Gruppen zu „Nur Erwähnungen"', () {
|
|
expect(
|
|
_room(RoomType.group, Level.defaultLevel).effectiveNotificationLevel,
|
|
Level.notifyOnMention,
|
|
);
|
|
});
|
|
|
|
test('explizit gesetzter Level bleibt erhalten', () {
|
|
final room = _room(RoomType.oneToOne, Level.neverNotify);
|
|
expect(room.effectiveNotificationLevel, Level.neverNotify);
|
|
expect(room.isMuted, isTrue);
|
|
});
|
|
}
|