74 lines
2.3 KiB
Dart
74 lines
2.3 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:yumi/app/constants/sc_room_msg_type.dart';
|
|
import 'package:yumi/services/audio/rtm_manager.dart';
|
|
import 'package:yumi/ui_kit/widgets/room/room_msg_item.dart';
|
|
|
|
void main() {
|
|
test('rocket reward user messages do not enter public room lists', () {
|
|
final manager = RealTimeMessagingManager();
|
|
var allCount = 0;
|
|
var chatCount = 0;
|
|
var giftCount = 0;
|
|
manager.msgAllListener = (_) => allCount += 1;
|
|
manager.msgChatListener = (_) => chatCount += 1;
|
|
manager.msgGiftListener = (_) => giftCount += 1;
|
|
|
|
manager.addMsg(
|
|
Msg.fromJson({
|
|
'type': SCRoomMsgType.voiceRoomRocketRewardUser,
|
|
'data': {
|
|
'roomId': '9001',
|
|
'userId': '1001',
|
|
'rewardType': 'GOLD',
|
|
'rewardCover': 'https://cdn.example.com/reward.png',
|
|
},
|
|
}),
|
|
);
|
|
|
|
expect(manager.roomAllMsgList, isEmpty);
|
|
expect(manager.roomChatMsgList, isEmpty);
|
|
expect(manager.roomGiftMsgList, isEmpty);
|
|
expect(allCount, 0);
|
|
expect(chatCount, 0);
|
|
expect(giftCount, 0);
|
|
});
|
|
|
|
test('hydrates rocket reward user from nested im payload', () {
|
|
final msg = Msg.fromJson({
|
|
'type': SCRoomMsgType.voiceRoomRocketRewardUser,
|
|
'data': {
|
|
'roomId': '9001',
|
|
'userId': '1001',
|
|
'userNickname': 'Winner',
|
|
'account': '223456',
|
|
'userAvatar': 'https://cdn.example.com/avatar.png',
|
|
'rewardType': 'GOLD',
|
|
'rewardCover': 'https://cdn.example.com/reward.png',
|
|
'rocketIconUrl': 'https://cdn.example.com/rocket.png',
|
|
},
|
|
});
|
|
|
|
expect(msg.type, SCRoomMsgType.voiceRoomRocketRewardUser);
|
|
expect(msg.groupId, '9001');
|
|
expect(msg.user?.id, '1001');
|
|
expect(msg.user?.userNickname, 'Winner');
|
|
expect(msg.user?.account, '223456');
|
|
expect(msg.user?.userAvatar, 'https://cdn.example.com/avatar.png');
|
|
expect(msg.role, 'GOLD');
|
|
expect(msg.msg, 'https://cdn.example.com/reward.png');
|
|
expect(msg.rocketIconUrl, 'https://cdn.example.com/rocket.png');
|
|
});
|
|
|
|
test('rocket reward user nickname falls back to account', () {
|
|
final msg = Msg.fromJson({
|
|
'type': SCRoomMsgType.voiceRoomRocketRewardUser,
|
|
'userId': '1002',
|
|
'account': '334455',
|
|
'rewardType': 'BADGE',
|
|
});
|
|
|
|
expect(msg.user?.userNickname, '334455');
|
|
expect(msg.user?.id, '1002');
|
|
});
|
|
}
|