feat(tests): test coverage is 70.5

This commit is contained in:
misha
2026-01-26 16:38:15 +03:00
parent 92205c09d6
commit 29589ef6fd
49 changed files with 2690 additions and 18 deletions

View File

@@ -0,0 +1,102 @@
import 'package:eatvio_app/features/chat/models/chat_message_model.dart';
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:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_state.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('ChatRoomState', () {
test('creates initial ChatRoomState', () {
const state = ChatRoomState();
expect(state, isA<ChatRoomState>());
});
test('creates loading ChatRoomState', () {
const state = ChatRoomState.loading();
expect(state, isA<ChatRoomState>());
expect(state, isA<ChatRoomStateLoading>());
});
test('creates loaded ChatRoomState with default values', () {
const chatRoomSettings = ChatRoomSettingsModel(name: 'Test Room', state: 'active');
const sender = ChatUserModel(id: 1, name: 'Sender', slug: 'sender');
const receiver = ChatUserModel(id: 2, name: 'Receiver', slug: 'receiver');
const users = Users(sender: sender, receiver: receiver);
const chatRoom = ChatRoomModel(id: 'room-1', chatRoomSettings: chatRoomSettings, users: users, chosenPlanId: null);
const state = ChatRoomState.loaded(chatRoom: chatRoom, chatMessages: [], hasCard: false, isTyping: false, isLoading: false);
expect(state, isA<ChatRoomState>());
expect(state, isA<ChatRoomStateLoaded>());
expect((state as ChatRoomStateLoaded).chatRoom, chatRoom);
expect(state.chatMessages, isEmpty);
expect(state.hasCard, isFalse);
expect(state.isTyping, isFalse);
expect(state.isLoading, isFalse);
});
test('creates loaded ChatRoomState with messages', () {
const chatRoomSettings = ChatRoomSettingsModel(name: 'Test Room', state: 'active');
const sender = ChatUserModel(id: 1, name: 'Sender', slug: 'sender');
const receiver = ChatUserModel(id: 2, name: 'Receiver', slug: 'receiver');
const users = Users(sender: sender, receiver: receiver);
const chatRoom = ChatRoomModel(id: 'room-1', chatRoomSettings: chatRoomSettings, users: users, chosenPlanId: null);
final message = ChatMessageModel(
id: 1,
data: 'Test message',
mediaData: null,
authorId: 1,
updatedAt: DateTime.now(),
isRead: false,
isCurrentUserAuthor: true,
roomId: 'room-1',
);
final state = ChatRoomState.loaded(chatRoom: chatRoom, chatMessages: [message], hasCard: true, isTyping: true, isLoading: true);
expect(state, isA<ChatRoomStateLoaded>());
expect((state as ChatRoomStateLoaded).chatMessages.length, 1);
expect(state.hasCard, isTrue);
expect(state.isTyping, isTrue);
expect(state.isLoading, isTrue);
});
test('creates error ChatRoomState', () {
const state = ChatRoomState.error(errorMessage: 'Test error');
expect(state, isA<ChatRoomState>());
expect(state, isA<ChatRoomStateError>());
expect((state as ChatRoomStateError).errorMessage, 'Test error');
});
test('different state types are not equal', () {
const chatRoomSettings = ChatRoomSettingsModel(name: 'Test Room', state: 'active');
const sender = ChatUserModel(id: 1, name: 'Sender', slug: 'sender');
const receiver = ChatUserModel(id: 2, name: 'Receiver', slug: 'receiver');
const users = Users(sender: sender, receiver: receiver);
const chatRoom = ChatRoomModel(id: 'room-1', chatRoomSettings: chatRoomSettings, users: users, chosenPlanId: null);
const loading = ChatRoomState.loading();
const loaded = ChatRoomState.loaded(chatRoom: chatRoom, chatMessages: [], hasCard: false, isTyping: false, isLoading: false);
const error = ChatRoomState.error(errorMessage: 'Error');
expect(loading == loaded, isFalse);
expect(loading == error, isFalse);
expect(loaded == error, isFalse);
});
});
}