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:
@@ -0,0 +1,64 @@
|
||||
import 'package:eatvio_app/features/calendar/models/calendar_model.dart';
|
||||
import 'package:eatvio_app/features/calendar/presentation/bloc/calendar_cubit.dart';
|
||||
import 'package:eatvio_app/features/calendar/presentation/bloc/calendar_state.dart';
|
||||
import 'package:eatvio_app/features/calendar/repositories/calendar_repository.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:mockito/annotations.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import 'calendar_cubit_test.mocks.dart';
|
||||
|
||||
@GenerateNiceMocks([MockSpec<CalendarRepository>()])
|
||||
void main() {
|
||||
group('CalendarCubit', () {
|
||||
CalendarCubit? cubit;
|
||||
late MockCalendarRepository mockRepository;
|
||||
|
||||
setUp(() {
|
||||
mockRepository = MockCalendarRepository();
|
||||
});
|
||||
|
||||
tearDown(() async {
|
||||
if (cubit != null && !cubit!.isClosed) {
|
||||
await cubit!.close();
|
||||
cubit = null;
|
||||
}
|
||||
});
|
||||
|
||||
test('начальное состояние - loading', () {
|
||||
cubit = CalendarCubit(calendarRepository: mockRepository);
|
||||
|
||||
expect(cubit!.state, isA<CalendarStateLoading>());
|
||||
});
|
||||
|
||||
test('loadCalendarList - успешная загрузка календаря', () async {
|
||||
cubit = CalendarCubit(calendarRepository: mockRepository);
|
||||
|
||||
const testCalendar = CalendarModel(
|
||||
date: '2024-01-01',
|
||||
isCurrentDayIncludedInTheChosenDietProgression: true,
|
||||
);
|
||||
|
||||
when(mockRepository.getCalendar())
|
||||
.thenAnswer((_) async => [testCalendar]);
|
||||
|
||||
await cubit!.loadCalendarList();
|
||||
|
||||
expect(cubit!.state, isA<CalendarStateLoaded>());
|
||||
final loadedState = cubit!.state as CalendarStateLoaded;
|
||||
expect(loadedState.calendarList.length, 1);
|
||||
});
|
||||
|
||||
test('loadCalendarList - обработка ошибки', () async {
|
||||
cubit = CalendarCubit(calendarRepository: mockRepository);
|
||||
|
||||
when(mockRepository.getCalendar())
|
||||
.thenThrow(Exception('Ошибка загрузки'));
|
||||
|
||||
await cubit!.loadCalendarList();
|
||||
|
||||
expect(cubit!.state, isA<CalendarStateError>());
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user