73 lines
2.4 KiB
Dart
73 lines
2.4 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:test/test.dart';
|
|
import 'package:stream_chat/src/models/reaction.dart';
|
|
import 'package:stream_chat/src/models/user.dart';
|
|
|
|
void main() {
|
|
group('src/models/reaction', () {
|
|
const jsonExample = '''
|
|
{
|
|
"message_id": "76cd8c82-b557-4e48-9d12-87995d3a0e04",
|
|
"user_id": "2de0297c-f3f2-489d-b930-ef77342edccf",
|
|
"user": {
|
|
"id": "2de0297c-f3f2-489d-b930-ef77342edccf",
|
|
"role": "user",
|
|
"created_at": "2020-01-28T22:17:30.810011Z",
|
|
"updated_at": "2020-01-28T22:17:31.077195Z",
|
|
"banned": false,
|
|
"online": false,
|
|
"image": "https://randomuser.me/api/portraits/women/45.jpg",
|
|
"name": "Daisy Morgan"
|
|
},
|
|
"type": "wow",
|
|
"score": 1,
|
|
"created_at": "2020-01-28T22:17:31.108742Z",
|
|
"updated_at": "2020-01-28T22:17:31.108742Z"
|
|
}
|
|
''';
|
|
|
|
test('should parse json correctly', () {
|
|
final reaction = Reaction.fromJson(json.decode(jsonExample));
|
|
expect(reaction.messageId, '76cd8c82-b557-4e48-9d12-87995d3a0e04');
|
|
expect(reaction.createdAt, DateTime.parse('2020-01-28T22:17:31.108742Z'));
|
|
expect(reaction.type, 'wow');
|
|
expect(
|
|
reaction.user.toJson(),
|
|
User.temp(id:'2de0297c-f3f2-489d-b930-ef77342edccf', extraData: {
|
|
'image': 'https://randomuser.me/api/portraits/women/45.jpg',
|
|
'name': 'Daisy Morgan'
|
|
}).toJson(),
|
|
);
|
|
expect(reaction.score, 1);
|
|
expect(reaction.userId, '2de0297c-f3f2-489d-b930-ef77342edccf');
|
|
expect(reaction.extraData, {'updated_at': '2020-01-28T22:17:31.108742Z'});
|
|
});
|
|
|
|
test('should serialize to json correctly', () {
|
|
final reaction = Reaction(
|
|
messageId: '76cd8c82-b557-4e48-9d12-87995d3a0e04',
|
|
createdAt: DateTime.parse('2020-01-28T22:17:31.108742Z'),
|
|
type: 'wow',
|
|
user: User.temp(id:'2de0297c-f3f2-489d-b930-ef77342edccf', extraData: {
|
|
'image': 'https://randomuser.me/api/portraits/women/45.jpg',
|
|
'name': 'Daisy Morgan'
|
|
}),
|
|
userId: '2de0297c-f3f2-489d-b930-ef77342edccf',
|
|
extraData: {'bananas': 'yes'},
|
|
score: 1,
|
|
);
|
|
|
|
expect(
|
|
reaction.toJson(),
|
|
{
|
|
'message_id': '76cd8c82-b557-4e48-9d12-87995d3a0e04',
|
|
'type': 'wow',
|
|
'score': 1,
|
|
'bananas': 'yes',
|
|
},
|
|
);
|
|
});
|
|
});
|
|
}
|