forked from eatvio/eatvio_app
feat(dependencies): add rxdart package and improve string extension methods for better handling of empty strings and gender parsing
This commit is contained in:
45
test/features/chat/models/chat_message_model_test.dart
Normal file
45
test/features/chat/models/chat_message_model_test.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
import 'package:eatvio_app/features/chat/models/chat_message_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ChatMessageModel', () {
|
||||
test('создает ChatMessageModel с правильными значениями', () {
|
||||
final model = ChatMessageModel(
|
||||
id: 1,
|
||||
data: 'Test message',
|
||||
mediaData: null,
|
||||
authorId: 123,
|
||||
updatedAt: DateTime(2024, 1, 1),
|
||||
isRead: false,
|
||||
isCurrentUserAuthor: true,
|
||||
roomId: 'room-1',
|
||||
);
|
||||
|
||||
expect(model.id, 1);
|
||||
expect(model.data, 'Test message');
|
||||
expect(model.authorId, 123);
|
||||
expect(model.isRead, false);
|
||||
expect(model.messageState, MessageState.sent);
|
||||
});
|
||||
|
||||
test('fromJson создает ChatMessageModel из JSON', () {
|
||||
final json = {
|
||||
'id': 1,
|
||||
'data': 'Test message',
|
||||
'media_data': null,
|
||||
'author_id': 123,
|
||||
'updated_at': '2024-01-01T00:00:00Z',
|
||||
'read_by_to_user': false,
|
||||
'is_author_message_auth_user': true,
|
||||
'room_id': 'room-1',
|
||||
};
|
||||
|
||||
final model = ChatMessageModel.fromJson(json);
|
||||
|
||||
expect(model.id, 1);
|
||||
expect(model.data, 'Test message');
|
||||
expect(model.authorId, 123);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
33
test/features/chat/models/chat_messages_model_test.dart
Normal file
33
test/features/chat/models/chat_messages_model_test.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
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';
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
25
test/features/chat/models/chat_meta_model_test.dart
Normal file
25
test/features/chat/models/chat_meta_model_test.dart
Normal file
@@ -0,0 +1,25 @@
|
||||
import 'package:eatvio_app/features/chat/models/chat_meta_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ChatMetaModel', () {
|
||||
test('создает ChatMetaModel с правильными значениями', () {
|
||||
const model = ChatMetaModel(
|
||||
lastPage: 5,
|
||||
);
|
||||
|
||||
expect(model.lastPage, 5);
|
||||
});
|
||||
|
||||
test('fromJson создает ChatMetaModel из JSON', () {
|
||||
final json = {
|
||||
'last_page': 5,
|
||||
};
|
||||
|
||||
final model = ChatMetaModel.fromJson(json);
|
||||
|
||||
expect(model.lastPage, 5);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
44
test/features/chat/models/chat_room_model_test.dart
Normal file
44
test/features/chat/models/chat_room_model_test.dart
Normal file
@@ -0,0 +1,44 @@
|
||||
import 'package:eatvio_app/features/chat/models/chat_room_model.dart';
|
||||
import 'package:eatvio_app/features/chat/models/chat_room_settings_model.dart';
|
||||
import 'package:eatvio_app/features/chat/models/chat_user_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ChatRoomModel', () {
|
||||
test('создает ChatRoomModel с правильными значениями', () {
|
||||
const settings = ChatRoomSettingsModel(
|
||||
name: 'Room Name',
|
||||
state: 'active',
|
||||
);
|
||||
|
||||
const sender = ChatUserModel(
|
||||
id: 1,
|
||||
name: 'Sender',
|
||||
slug: 'sender',
|
||||
profilePhotoUrl: 'https://example.com/sender.jpg',
|
||||
);
|
||||
|
||||
const receiver = ChatUserModel(
|
||||
id: 2,
|
||||
name: 'Receiver',
|
||||
slug: 'receiver',
|
||||
profilePhotoUrl: 'https://example.com/receiver.jpg',
|
||||
);
|
||||
|
||||
const users = Users(sender: sender, receiver: receiver);
|
||||
|
||||
const model = ChatRoomModel(
|
||||
id: 'room-1',
|
||||
chatRoomSettings: settings,
|
||||
users: users,
|
||||
chosenPlanId: 1,
|
||||
chosenPlan: null,
|
||||
);
|
||||
|
||||
expect(model.id, 'room-1');
|
||||
expect(model.chosenPlanId, 1);
|
||||
expect(model.users.sender.id, 1);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
import 'package:eatvio_app/core/models/pagination_model.dart';
|
||||
import 'package:eatvio_app/features/chat/models/chat_room_pagination_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ChatRoomPaginationModel', () {
|
||||
test('создает ChatRoomPaginationModel с правильными значениями', () {
|
||||
const chatRoom = ChatRoom(
|
||||
id: 'room-1',
|
||||
lastMessage: null,
|
||||
users: Users(
|
||||
fromChatUser: ChatUser(
|
||||
id: 1,
|
||||
name: 'User 1',
|
||||
profilePhotoPath: null,
|
||||
profilePhotoUrl: 'https://example.com/user1.jpg',
|
||||
),
|
||||
toChatUser: ChatUser(
|
||||
id: 2,
|
||||
name: 'User 2',
|
||||
profilePhotoPath: null,
|
||||
profilePhotoUrl: 'https://example.com/user2.jpg',
|
||||
),
|
||||
),
|
||||
unreadMessagesCount: 5,
|
||||
chosenPlan: null,
|
||||
);
|
||||
|
||||
const pagination = ChatRoomPaginationModel(
|
||||
data: [chatRoom],
|
||||
unreadChatsCount: 1,
|
||||
meta: Meta(
|
||||
currentPage: 1,
|
||||
from: 1,
|
||||
lastPage: 1,
|
||||
links: [],
|
||||
perPage: 10,
|
||||
to: 1,
|
||||
total: 1,
|
||||
),
|
||||
);
|
||||
|
||||
expect(pagination.data.length, 1);
|
||||
expect(pagination.data.first.id, 'room-1');
|
||||
expect(pagination.unreadChatsCount, 1);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
29
test/features/chat/models/chat_room_settings_model_test.dart
Normal file
29
test/features/chat/models/chat_room_settings_model_test.dart
Normal file
@@ -0,0 +1,29 @@
|
||||
import 'package:eatvio_app/features/chat/models/chat_room_settings_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ChatRoomSettingsModel', () {
|
||||
test('создает ChatRoomSettingsModel с правильными значениями', () {
|
||||
const model = ChatRoomSettingsModel(
|
||||
name: 'Room Name',
|
||||
state: 'active',
|
||||
);
|
||||
|
||||
expect(model.name, 'Room Name');
|
||||
expect(model.state, 'active');
|
||||
});
|
||||
|
||||
test('fromJson создает ChatRoomSettingsModel из JSON', () {
|
||||
final json = {
|
||||
'room_name': 'Room Name',
|
||||
'state': 'active',
|
||||
};
|
||||
|
||||
final model = ChatRoomSettingsModel.fromJson(json);
|
||||
|
||||
expect(model.name, 'Room Name');
|
||||
expect(model.state, 'active');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
32
test/features/chat/models/chat_user_model_test.dart
Normal file
32
test/features/chat/models/chat_user_model_test.dart
Normal file
@@ -0,0 +1,32 @@
|
||||
import 'package:eatvio_app/features/chat/models/chat_user_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('ChatUserModel', () {
|
||||
test('создает ChatUserModel с правильными значениями', () {
|
||||
const model = ChatUserModel(
|
||||
id: 1,
|
||||
name: 'User Name',
|
||||
slug: 'user-slug',
|
||||
profilePhotoUrl: 'https://example.com/photo.jpg',
|
||||
);
|
||||
|
||||
expect(model.id, 1);
|
||||
expect(model.name, 'User Name');
|
||||
expect(model.slug, 'user-slug');
|
||||
expect(model.profilePhotoUrl, 'https://example.com/photo.jpg');
|
||||
});
|
||||
|
||||
test('создает ChatUserModel без фото', () {
|
||||
const model = ChatUserModel(
|
||||
id: 1,
|
||||
name: 'User Name',
|
||||
slug: 'user-slug',
|
||||
profilePhotoUrl: null,
|
||||
);
|
||||
|
||||
expect(model.profilePhotoUrl, isNull);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
25
test/features/chat/models/payment_model_test.dart
Normal file
25
test/features/chat/models/payment_model_test.dart
Normal file
@@ -0,0 +1,25 @@
|
||||
import 'package:eatvio_app/features/chat/models/payment_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('PaymentModel', () {
|
||||
test('создает PaymentModel с правильными значениями', () {
|
||||
final model = PaymentModel(
|
||||
paymentUrl: 'https://example.com/payment',
|
||||
);
|
||||
|
||||
expect(model.paymentUrl, 'https://example.com/payment');
|
||||
});
|
||||
|
||||
test('fromJson создает PaymentModel из JSON', () {
|
||||
final json = {
|
||||
'checkout_url': 'https://example.com/payment',
|
||||
};
|
||||
|
||||
final model = PaymentModel.fromJson(json);
|
||||
|
||||
expect(model.paymentUrl, 'https://example.com/payment');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
25
test/features/chat/models/plan_complain_model_test.dart
Normal file
25
test/features/chat/models/plan_complain_model_test.dart
Normal file
@@ -0,0 +1,25 @@
|
||||
import 'package:eatvio_app/features/chat/models/plan_complain_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('PlanComplainModel', () {
|
||||
test('создает PlanComplainModel с правильными значениями', () {
|
||||
final model = PlanComplainModel(
|
||||
description: 'Test complaint',
|
||||
);
|
||||
|
||||
expect(model.description, 'Test complaint');
|
||||
});
|
||||
|
||||
test('fromJson создает PlanComplainModel из JSON', () {
|
||||
final json = {
|
||||
'description': 'Test complaint',
|
||||
};
|
||||
|
||||
final model = PlanComplainModel.fromJson(json);
|
||||
|
||||
expect(model.description, 'Test complaint');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
38
test/features/chat/models/websocket_info_model_test.dart
Normal file
38
test/features/chat/models/websocket_info_model_test.dart
Normal file
@@ -0,0 +1,38 @@
|
||||
import 'package:eatvio_app/features/chat/models/websocket_info_model.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('WebsocketInfoModel', () {
|
||||
test('создает WebsocketInfoModel с правильными значениями', () {
|
||||
const model = WebsocketInfoModel(
|
||||
key: 'test-key',
|
||||
host: 'localhost',
|
||||
port: '6001',
|
||||
cluster: 'mt1',
|
||||
userId: 123,
|
||||
);
|
||||
|
||||
expect(model.key, 'test-key');
|
||||
expect(model.host, 'localhost');
|
||||
expect(model.port, '6001');
|
||||
expect(model.cluster, 'mt1');
|
||||
expect(model.userId, 123);
|
||||
});
|
||||
|
||||
test('fromJson создает WebsocketInfoModel из JSON', () {
|
||||
final json = {
|
||||
'key': 'test-key',
|
||||
'host': 'localhost',
|
||||
'port': '6001',
|
||||
'cluster': 'mt1',
|
||||
'user_id': 123,
|
||||
};
|
||||
|
||||
final model = WebsocketInfoModel.fromJson(json);
|
||||
|
||||
expect(model.key, 'test-key');
|
||||
expect(model.userId, 123);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user