forked from eatvio/eatvio_app
feat(tests): test coverage is 70.5
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user