forked from eatvio/eatvio_app
67 lines
2.1 KiB
Dart
67 lines
2.1 KiB
Dart
import 'package:eatvio_app/features/chat/models/chat_message_model.dart';
|
||
import 'package:eatvio_app/features/chat/models/chat_meta_model.dart';
|
||
import 'package:eatvio_app/features/chat/models/chat_messages_model.dart';
|
||
import 'package:flutter_test/flutter_test.dart';
|
||
import '../../../fixtures/fixture_reader.dart';
|
||
|
||
void main() {
|
||
group('ChatMessagesModel', () {
|
||
test('создает ChatMessagesModel с правильными значениями', () {
|
||
final message = ChatMessageModel(
|
||
id: 1,
|
||
data: 'Test message',
|
||
mediaData: null,
|
||
authorId: 123,
|
||
updatedAt: DateTime(2024, 1, 1),
|
||
isRead: false,
|
||
isCurrentUserAuthor: true,
|
||
roomId: 'room-1',
|
||
);
|
||
|
||
const meta = ChatMetaModel(lastPage: 1);
|
||
|
||
final model = ChatMessagesModel(messagesList: [message], meta: meta);
|
||
|
||
expect(model.messagesList.length, 1);
|
||
expect(model.messagesList.first.id, 1);
|
||
expect(model.meta.lastPage, 1);
|
||
});
|
||
|
||
test('fromJson создает ChatMessagesModel из JSON', () {
|
||
final json = FixtureReader.readAsMap('chat/chat_messages_response.json');
|
||
|
||
final model = ChatMessagesModel.fromJson(json);
|
||
|
||
expect(model.messagesList.length, 2);
|
||
expect(model.messagesList.first.id, 1);
|
||
expect(model.messagesList.first.data, 'First message');
|
||
expect(model.meta.lastPage, 1);
|
||
});
|
||
|
||
test('toJson serializes ChatMessagesModel correctly', () {
|
||
final message = ChatMessageModel(
|
||
id: 1,
|
||
data: 'Test message',
|
||
mediaData: null,
|
||
authorId: 123,
|
||
updatedAt: DateTime(2024, 1, 1, 12, 0, 0),
|
||
isRead: false,
|
||
isCurrentUserAuthor: true,
|
||
roomId: 'room-1',
|
||
type: ChatMessageType.text,
|
||
);
|
||
|
||
const meta = ChatMetaModel(lastPage: 1);
|
||
|
||
final model = ChatMessagesModel(messagesList: [message], meta: meta);
|
||
|
||
final json = model.toJson();
|
||
|
||
expect(json, isNotNull);
|
||
expect(json, isA<Map<String, dynamic>>());
|
||
expect(json.containsKey('data'), isTrue);
|
||
expect((json['data'] as List).length, 1);
|
||
});
|
||
});
|
||
}
|